一个完整的Socket例子

服务端的程序:

[code] 

import java.io.*; 

import java.net.*; 


public class SocketServer { 

ServerSocket ss=null; 

Socket s=null; 

DataInputStream inStream=null; 

DataOutputStream outStream=null; 


public SocketServer() { 

try{ 

init(); 

} 

catch(Exception e){ 

System.out.println(e.toString()); 

} 

} 


void init() throws Exception{ 

ss=new ServerSocket(765); 

s.setSoTimeout(3000); 

} 


void waitForClient(){ 

try{ 

s=ss.accept(); 

inStream=new DataInputStream(s.getInputStream()); 

outStream=new DataOutputStream(s.getOutputStream()); 

outStream.writeUTF("1"); 

s.setSoTimeout(3000); 

waitData(); 

} 

catch(Exception e){ 

System.out.println(e.toString()); 

} 

} 


void waitData(){ 

while(true){ 

try{ 

String str=inStream.readUTF(); 

System.out.println("Server accept: "+str); 

int nu=Integer.parseInt(str)+1; 

if(nu>20){ 

System.out.println("Send end!"); 

break; 

} 

else{ 

str=Integer.toString(nu); 

outStream.writeUTF(str); 

} 

} 

catch(Exception e){ 

System.out.println(e.toString()); 

break; 

} 

} 

} 


public static void main(String[] args) { 

SocketServer socketServer1 = new SocketServer(); 

socketServer1.waitForClient(); 

} 

}


客户端的程序:


import java.net.*; 

import java.io.*; 


public class SocketClient{ 

Socket s=null; 

DataInputStream inStream=null; 

DataOutputStream outStream=null; 


public SocketClient() { 

try{ 

init(); 

waitData(); 

} 

catch(Exception e){ 

System.out.println(e.toString()); 

} 

} 


void init() throws Exception{ 

s=new Socket("192.168.0.32",765); //把这里的IP改成你运行SocketServer.class的IP 

inStream=new DataInputStream(s.getInputStream()); 

outStream=new DataOutputStream(s.getOutputStream()); 

s.setSoTimeout(3000); 

} 


void waitData(){ 

while(true){ 

try{ 

String str=inStream.readUTF(); 

System.out.println("Client accept: "+str); 

str=Integer.toString(Integer.parseInt(str)+1); 

outStream.writeUTF(str); 

} 

catch(Exception e){ 

System.out.println(e.toString()); 

break; 

} 

} 

} 


public static void main(String[] args) { 

SocketClient socketClient1 = new SocketClient(); 

} 

} 

[/code]