JAVA Socket通信(包含服务端和客户端)
实例上有足够的注释我在这里就不再多说了,如果有疑问可以给我回复信息。
客户端:
package com.socket.demo; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; /** * 简单的数据通信客户端 * @author USER * */ public class Client{ private Socket socket; private DataOutputStream out; private DataInputStream in; public Client(){ try{ socket=new Socket(InetAddress.getLocalHost(),20000); //建立连接server之网络平台socket out=new DataOutputStream(socket.getOutputStream()); //建立网络输出串流对象os out.writeUTF(getMsg()); //输出讯息传往server in=new DataInputStream(socket.getInputStream()); //建立网络输入串流对象is System.out.println("message:"+in.readUTF()); //印出msgin内容 socket.close();//关闭连接 //关闭平台socket } catch(IOException e){ //网络连接例外处理执行区 System.out.println(e.toString()); System.exit(1); } } /** * 从键盘上录入数据并发送至服务端 * @return */ private String getMsg(){ DataInputStream inputStream = new DataInputStream(System.in); try { return inputStream.readUTF(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 程序的入口main方法 * @param args */ public static void main(String args[]){ new Client(); } }
服务器端:
package com.socket.demo; import java.net.*; import java.io.*; import java.util.*; /** * 服务器端 * @author USER * */ public class Server{ private ServerSocket SS; private DataOutputStream out; private DataInputStream in; private Socket socket; public Server(){ try{ SS=new ServerSocket(20000);//创建服务Socket并指定端口号 System.out.println("Server created.\nWaiting..."); while(true){ socket=SS.accept();//接收客户单的请求 System.out.println("connected form clinet"+socket.getInetAddress().getHostAddress());//打印出客户端主机地址 System.out.println("clinet's name:"+socket.getInetAddress().getHostName());//打印客户端主机名称 System.out.println("date:"+new Date());//打印时间 in=new DataInputStream(socket.getInputStream());//输入流 /*打印出客户端输入的信息*/ System.out.println("message:"+in.readUTF()); out=new DataOutputStream(socket.getOutputStream());//输出流 out.writeUTF("服务器端数据:"+in.readUTF());//将输入的信息从服务器端再返回给客户端 } } catch(IOException e) { System.out.println(e.toString()); System.exit(1); } } public static void main(String args[]){ new Server();//启动服务器端 } }
浙公网安备 33010602011771号