java实现网络通信
这个测试项目很久以前写的,现在发表出来备份一下。
此测试代码主要是实现客户端与服务器端实现通信,使用socket套接字编程实现。
客户端代码为:
package com.client.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import com.server.test.Server; public class Client { public static void main(String[] args) { Socket s = null; BufferedReader br = null; PrintWriter pw = null; try{ s = new Socket("127.0.0.1",Server.port); br = new BufferedReader(new InputStreamReader(s.getInputStream())); pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream())));; for(int i=0; i<10; i++) { pw.println("client:" + i); pw.flush(); String str = br.readLine(); System.out.println(str); } pw.println("end"); pw.flush(); } catch(Exception e) { }finally{ System.out.println("closing..."); try{ br.close(); pw.close(); s.close(); }catch(Exception e) { e.printStackTrace(); } } } }
服务器端代码为:
package com.server.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class Server { public static int port = 6000; public static void main(String[] args) { ServerSocket ss = null; Socket s = null; BufferedReader br = null; PrintWriter pw = null; try{ ss = new ServerSocket(port); s = ss.accept(); //接受客户端发送过来的信息 br = new BufferedReader(new InputStreamReader(s.getInputStream())); //发送返回信息 pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream())),true); int num = 0; while(true) { String str = br.readLine(); if(str.equals("end")) break; System.out.println("client message is :"+str); Thread.sleep(100); pw.println("Message received" + num++); pw.flush(); } }catch(Exception e) { e.printStackTrace(); } finally{ try{ br.close(); pw.close(); s.close(); ss.close(); }catch(Exception e) { e.printStackTrace(); } } } }