先来看客户端代码:
package client.sendReceive; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; import java.net.Socket; import java.net.UnknownHostException; /** * 向服务端程序发送消息, * @author kevin liu<wenhaoliu117@gmail.com> * */ public class SenderSocket { private String ip; private int port; /** * 初始化 * @param ip 服务端socket * @param port 服务端机器的ip地址 */ public SenderSocket(String ip, int port) { this.ip = ip; this.port = port; } /** * * @param msg */ public void sendMsg(String msg) { try { Socket client = new Socket(ip, port); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter( client.getOutputStream())); writer.write(msg.trim()); writer.close(); client.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
服务端代码:
package server.sendReceive; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; /** * 服务端,用于接收客户端的信息 * @author kevin liu<wenhaoliu117@gmail.com> * */ public class ReceiverSocket { private int port;//端口号,在配置文件中 public ReceiverSocket(int port){ this.port = port; } public void startListening(){ Thread listenThread = new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub try { ServerSocket servSocet = new ServerSocket(port); Socket socket = null; BufferedReader br = null; String tmp1 = null; String tmp2 = null; while(true){ //等待建立连接 socket = servSocet.accept(); //读取数据,多线程的话,把new 一个thread,把socet传给它 br = new BufferedReader(new InputStreamReader(socket.getInputStream())); StringBuffer sb = new StringBuffer(); String tmp = null; while((tmp=br.readLine())!=null){ sb.append(tmp); } br.close(); if(socket !=null ){ socket.close(); } } } catch (IOException e) { e.printStackTrace(); } } }); listenThread.start(); } }
以上是工作中遇到scoket通信接受消息的实例代码,如有错误恳请指教~~~