(TCP)控制台循环输入数据 发送给 服务端
2017-08-22 22:31
411 查看
1 . 客户端
2 .服务器端,注意while中的代码,在while中回复信息
package com.qf.demo4; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; import com.qf.demo3.Util; /** * 控制台循环输入数据 发送给 服务端 * * @author Administrator * */ public class Client { public static void main(String[] args) { // 1 创建快递点 Socket socket = null; OutputStream os = null; InputStream is = null; try { socket = new Socket("10.0.143.51", 8888); // 2 准备要发送的数据 Scanner scanner = new Scanner(System.in); // 3 获得快递员 os = socket.getOutputStream(); is = socket.getInputStream(); while (true) { String data = scanner.next(); os.write(data.getBytes()); os.flush(); if ("over".equals(data)) { break; } // 收到回信 byte[] bs = new byte[1024]; int num = is.read(bs); String reault = new String(bs, 0, num); System.out.println("服务器回复的数据是 : " + reault); if ("over".equals(reault)) { break; } } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { Util.closed(null, socket, is, os); } } }
2 .服务器端,注意while中的代码,在while中回复信息
package com.qf.demo4; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; import com.qf.demo3.Util; public class Server { public static void main(String[] args) { // 1 创建 服务端的socket ServerSocket serverSocket = null; Socket socket =null; InputStream is =null; OutputStream os = null; try { serverSocket = new ServerSocket(8888); // 2 等待接收客户端的数据 socket = serverSocket.accept(); is = socket.getInputStream(); os = socket.getOutputStream(); Scanner scanner = new Scanner(System.in); // 3 读取信息 while(true){ byte[] bs = new byte[1024]; //会接着上次读取的结束位置往后读取 int num = is.read(bs); String string = new String(bs, 0, num); System.out.println("客户端发送了: "+string); if("over".equals(string)){ break; } // 以下是回复数据 String result = scanner.next(); os.write(result.getBytes()); os.flush(); if("over".equals(result)){ break; } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { Util.closed(serverSocket, socket, is, os); } } }
相关文章推荐
- 客户端输入字母数据,发送给服务端,服务端收到数据后,将其转换成大写字母发送到客户端,并打印到控制台
- TCP协议发送数据:TCP 协议接收端(服务端)数据,
- Java写的TCP聊天程序,服务端收不到客户端发送的数据
- TCP与UDP的异同(服务端接收数据,客户端发送数据)
- TCP与UDP的异同(服务端接收数据,客户端发送数据)
- TCP编程例一:客户端给服务端发送信息。服务端输出此信息到控制台
- Tcp服务端一直sleep,客户端不断发送数据产生的问题
- Tcp服务端一直sleep,客户端不断发送数据产生的问题
- TCP-客户端给服务端发送数据,服务端收到后,给客户端反馈信息
- java 基于tcp客户端服务端发送接收数据
- Tcp服务端一直sleep,客户端不断发送数据产生的问题
- TCP服务端发送数据
- TCP通信-客户端给服务端发送数据 -聊天室版本3-01
- Tcp服务端一直sleep,客户端不断发送数据产生的问题
- 怎样写一个获取数据函数:用TCP/IP通讯,向服务端发送命令,并从服务端获得返回数据.
- TCP与UDP的异同(服务端接收数据,客户端发送数据)
- TCP与UDP的异同(服务端接收数据,客户端发送数据)
- TCP通信-客户端给服务端发送数据 -聊天室版本3-02
- Tcp服务端一直sleep,客户端不断发送数据产生的问题
- C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全