socket例子
今天看了下java网络通讯的API,了解了下java如何进行网络通讯的。
测试实例如下,首先构建了个监听的server:
import java.net.ServerSocket;
import java.net.Socket;
/**
* @data 2011-9-7
*/
public class ListenServer {
/**
* @param args
*/
public static void main(String[] args) {
try{
ServerSocket serverSocket = new ServerSocket(55888);
System.out.println("Now ListenServer's listening at port 55888 ...");
while(true){
Socket sc = serverSocket.accept();
System.out.println(sc.getInetAddress().getHostName() + " linked!");
new Thread(new ProcessService(sc)).start();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
然后是多线程处理的服务类:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
/**
* @data 2011-9-7
*/
public class ProcessService implements Runnable {
private Socket socket = null;
public ProcessService(Socket socket){
this.socket = socket;
}
@Override
public void run() {
BufferedReader br = null;
PrintWriter out = null;
try{
br = new BufferedReader(new InputStreamReader(this.socket.getInputStream()));
out = new PrintWriter(this.socket.getOutputStream(),true);
do{
String msg = br.readLine();
out.println(msg);
if(msg.equals("exit")){
break;
}
}while(true);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
br.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
最后是客户端类:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
/**
* @data 2011-9-7
*/
public class Client {
public static void main(String[] args) {
Socket socket = null;
BufferedReader br = null;
PrintWriter pw = null;
BufferedReader in = null;
try{
socket = new Socket(InetAddress.getLocalHost(),55888);
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream(),true);
in = new BufferedReader(new InputStreamReader(System.in));
while(true){
System.out.println("input:");
String input = in.readLine();
pw.println(input);
String get = br.readLine();
System.out.println("get:" + get);
if(get.equals("exit")){
break;
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
br.close();
pw.close();
 
补充:软件开发 , Java ,