java 记录一下socket的server与client
2015-05-06 14:52
246 查看
package com.test.server; import java.io.IOException; import java.net.ServerSocket; import org.apache.log4j.Logger; public class Server{ private static final Logger logger = Logger.getLogger(Server.class); public static ServerSocket server = null; static{ try { server = new ServerSocket(5678); } catch (IOException e) { logger.error("Server set up error: ", e); } } public static void stop(){ if(server != null){ try { server.close(); } catch (IOException e) { logger.error("Server close error: ", e); } } } public static void main(String[] args) { Server.stop(); } }
package com.test.server; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Writer; import java.net.Socket; import org.apache.log4j.Logger; public class ServerThread implements Runnable { private static final Logger logger = Logger.getLogger(ServerThread.class); private Socket socket; public ServerThread(Socket socket) { this.socket = socket; } @Override public void run() { // String line; BufferedReader is = null; Writer writer = null; if (socket == null) { logger.error("Server down!"); return; } StringBuilder sb = new StringBuilder(); try { is = new BufferedReader(new InputStreamReader(socket.getInputStream())); String temp; int index; temp = is.readLine(); System.out.println("line is: "+ temp); while (temp != null) { System.out.println(temp); if ((index = temp.indexOf("eof")) != -1) {// 遇到eof时就结束接收 sb.append(temp.substring(0, index)); break; } sb.append(temp); temp = is.readLine(); } // logger.info(sb.toString()); System.out.println(sb.toString()); writer = new OutputStreamWriter(socket.getOutputStream()); writer.write("Hello Client."); writer.write("eof\n"); writer.flush(); } catch (IOException e) { logger.error("Read information error: ", e); } finally { try { if (is != null) { is.close(); } if (writer != null) { writer.close(); } if (socket != null) { socket.close(); } } catch (IOException e) { logger.error("Close the IO session error: ", e); } } } }
package com.test.server; import java.io.IOException; import java.net.Socket; import org.apache.log4j.Logger; public class SocketServer { private static final Logger logger = Logger.getLogger(SocketServer.class); public void connect() { try { while (true) { Socket socket = Server.server.accept(); // socket.getRemoteSocketAddress(); new Thread(new ServerThread(socket)).start(); } } catch (IOException e) { logger.error("Server set up error: ", e); } } public static void main(String[] args) { SocketServer ss = new SocketServer(); ss.connect(); } }
package com.test.client; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.Writer; import java.net.Socket; import java.net.UnknownHostException; import org.apache.log4j.Logger; public class SocketClient { private static final Logger logger = Logger.getLogger(SocketClient.class); public void client() { Socket client = null; BufferedReader is = null; Writer writer = null; try { client = new Socket("172.16.13.41", 5678); writer = new OutputStreamWriter(client.getOutputStream()); writer.write("Hello Server."); writer.write("eof\n"); writer.flush(); is = new BufferedReader(new InputStreamReader(client.getInputStream())); StringBuffer sb = new StringBuffer(); String temp; int index; while ((temp = is.readLine()) != null) { if ((index = temp.indexOf("eof")) != -1) { sb.append(temp.substring(0, index)); break; } sb.append(temp); } // logger.info(sb.toString()); System.out.println(sb.toString()); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { if (is != null) { is.close(); } if (writer != null) { writer.close(); } if (client != null) { client.close(); } } catch (IOException e) { logger.error("Close the IO session error: ", e); } } } public static void main(String[] args) { SocketClient sc = new SocketClient(); sc.client(); } }
相关文章推荐
- java 记录一下socket的server与clien
- [Java] Netty Websocket Server Javascript Client
- Java设置Client Socket链接Server超时时间
- org.apache.solr.client.solrj.SolrServerException: java.net.SocketTimeoutException: Read timed out
- Java Notes-14(DateAtHost Client, TinyHttpd Server, Socket Options)
- [Java] Netty Websocket Server Javascript Client
- JAVA 网络编程 Socket server client 编程
- java socket client to python server with utf-8
- Java设置Client Socket链接Server超时时间
- 来段代码提提神-Java实现SocketServer和client链接
- java使用socket上传文件,实现server端和client端
- Java Socket Server-client端多线程处理代码示例
- Javaclient端怎么判断server端socket是否已经断开
- J2EE工具类:ClientSocketUtil.java&ServerSocketConnection.java
- 一个java网络编程Socket的例子,实现Server与Client聊天
- 基于applet与ServerSocket的网络聊天室(记得是上学的时候写的,现在都忘了,记录一下)
- 上机题目(0基础)- Java网络操作-Socket实现client和server端通信二(Java)
- Java Socket Programming in Client/Server Applications - 转自 http://www.developer.com/
- 构建实时Web的JAVA选择组合:socket.io client + socketio-netty server
- [转载]异步Socket服务器与客户端(An Asynchronous Socket Server and Client)