基于TCP原理 Socket(套接字)网络编程模拟多个客户端访问服务器
2020-03-22 18:24
886 查看
原理的话就是利用Socket来模拟多个客户端向服务器请求 ,
利用一个死循环往里面添加线程。 这个线程的任务就是去通过流来传输和访问客户端与服务器端的数据。
服务器 端 :
1 创建一个服务器套接字
2 调用 accept方法
3 输入和输出流
4 响应客户端的请求
5 关闭。
# 代码如下
package qf.zz.wjp.day33; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; /* * * */ public class Testfuwuqi { public static void main(String[] args) throws Exception{ // 创建套接字 ServerSocket server =new ServerSocket(666); System.out.println("服务器上线 "); while (true){ Socket client= server.accept(); Thread m1 = new Thread(new m1(client)); m1.start(); } } } class m1 implements Runnable { Socket client; public m1(){} public m1(Socket client){ this.client=client ; } // 完成剩下的所有的任务 public void run() { System.out.println("线程已启动"); try { PrintWriter pw = new PrintWriter(new OutputStreamWriter(client.getOutputStream())); BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream())); while(true){ System.out.println(client.getLocalPort()); pw.println( new Scanner(System.in).next()); pw.flush(); System.out.println(br.readLine()); } }catch (Exception e ){ } } }
客户端的话 步骤就是
1 创建套接字
2 输入和输出流
3 通过流发送请求和回应服务器的请求
4关闭
# 代码如下
package qf.zz.wjp.day33; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; import java.net.Socket; public class Testkehu { // 客户端 public static void main(String[] args)throws Exception { Socket celient = new Socket("自己电脑的ip",666) ; System.out.println(" 客户端上线。。。。"); PrintWriter pw = new PrintWriter(new OutputStreamWriter(celient.getOutputStream())); BufferedReader br = new BufferedReader(new InputStreamReader(celient.getInputStream())); while(true) { System.out.println(celient.getLocalPort()); pw.println(new Scanner(System.in).next()); pw.flush(); System.out.println(br.readLine()); } } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 【Linux网络编程】基于TCP多进程(fork)版本客户端/服务器
- 模拟客户端登陆(基于TCP的Socket编程)
- 【网络编程笔记】简单的TCP协议 socket编程(C语言版服务器和客户端)
- 网络编程(5)—— 基于Linux系统的UDP协议socket服务器和客户端
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- Android Socket编程基于TCP实现客户端与服务器简易通信
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 网络编程_TCP_Socket通信原理_多个客户端_聊天室原理JAVA189-190
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 实操1:基于TCP协议的Socket网络编程 单向通信(客户端与服务端建立连接)
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- WINDOWS (服务器) 和 DOS(客户端) 网络互连 基于TCP/IP的编程实现
- 【Linux网络编程】基于TCP单进程版本阻塞式客户端/服务器
- java网络编程基于TCP的多客户端连接服务器
- iTOP-4412开发板实现基于linux下网络通信-套接字 TCP 的 socket 编程
- 网络编程(6)—— 基于Windws系统的UDP协议socket服务器和客户端