tcp案例

来源:互联网 发布:网络21成功系统犯法吗 编辑:程序博客网 时间:2024/05/24 06:42
package com.neutron.network.tcp.demo;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.Socket;public class Server3 {public static void accept() throws IOException {// 定义服务器端服务,并且监听特定端口ServerSocket server = new ServerSocket(10005);// 获取客户端服务,阻塞式方法Socket client = server.accept();// 获取客户端socket读取流BufferedReader buffIn = new BufferedReader(new InputStreamReader(client.getInputStream()));// 获取客户端socket写入流BufferedWriter buffOut = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));String receive = "";while ((receive = buffIn.readLine()) != null) {System.out.println("server receive:" + "client hostname::" + client.getInetAddress().getHostAddress());System.out.println("server receive:" + "client port::" + client.getPort());System.out.println("server receive:" + "client message::" + receive);String send = receive.toUpperCase();buffOut.write(send);// 必须newLine,因为客户端使用readLine判断输入结束的标记是回车buffOut.newLine();// 必须flush,否则客户端无法接收数据buffOut.flush();System.out.println("client will receive::" + receive.toUpperCase());}client.close();server.close();}public static void main(String[] args) throws IOException {accept();}}


package com.neutron.network.tcp.demo;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.Socket;import java.net.UnknownHostException;public class Client3 {public static void send() throws UnknownHostException, IOException {// 定义客户端, 并指定远程主机和端口Socket client = new Socket("127.0.0.1", 10005);// 定义读取键盘数据的流对象BufferedReader buffr = new BufferedReader(new InputStreamReader(System.in));// 将数据写入socket输出流,发送给服务器端BufferedWriter buffOut = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));// 定义socket读取流,读取服务器端返回的数据BufferedReader buffIn = new BufferedReader(new InputStreamReader(client.getInputStream()));// 客户端发送的数据String message = "";// 服务器端发送的数据String buff2 =  "";while ((message = buffr.readLine()) != null) {if ("over".equalsIgnoreCase(message)) {break;}// 将数据写入缓存中buffOut.write(message);// 为何要使用此方法,因为服务器接收数据使用readLine方法,此方法需要根据回车键判断输入结束buffOut.newLine();// 清除缓存区数据,不flush缓存区中数据,服务器段无法接收数据buffOut.flush();buff2 = buffIn.readLine();System.out.println("client receive:" + "client message :: " + buff2);}buffr.close();client.close();}public static void main(String[] args) throws UnknownHostException, IOException {send();}}

0 0
原创粉丝点击