package tcp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; public class TcpServer { // 先启动服务器端程序 public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(8080); System.out.println("tcp 服务端开启...."); while (1 == 1) { Socket socket = serverSocket.accept();// 阻塞等待消息 System.out.println("已经获取连接"+socket); socket.setSoTimeout(10*1000);//readLine这里等待10s,如果用户还没有输入就抛出异常java.net.SocketTimeoutException InputStream inputStream = socket.getInputStream(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); System.out.println("接收客户端信息..."); while (true) {//长连接不断处理 System.out.println("等待用户输入"); String readLine = bufferedReader.readLine(); System.out.println("接收报文:" + readLine); } } } }
package tcp; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.Socket; public class TcpClient { public static void main(String[] args) { try { Socket s = new Socket("127.0.0.1", 8080); // InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); DataOutputStream os_d = new DataOutputStream(os); for (;;) {// 保持长连接不断发送 InputStreamReader input = new InputStreamReader(System.in); BufferedReader read = new BufferedReader(input); String content = read.readLine(); System.out.println("开始发送报文," + content); os_d.writeBytes(content + System.getProperty("line.separator")); } } catch (Exception e) { e.printStackTrace(); } } }
相关推荐
在"socket_my_src_保持长连接_模拟学生行为统计,刷卡"这个例子中,可能涉及到模拟学生刷卡的行为,通过长连接实时上报学生的刷卡数据,服务器端接收到数据后进行统计分析。这种实时通信的方式能够及时反映学生的...
6. **线程与并发**:对于多线程或并发连接的处理,SocketTool 可以创建多个模拟服务器线程,以测试客户端的并发处理能力。 7. **日志记录**:工具通常提供日志功能,记录每一次通信的细节,方便分析和调试。 在...
总之,Socket模拟服务器的核心在于接收客户端连接,读取并处理客户端发送的数据,然后返回响应。通过使用ServerSocket和Socket类,结合输入/输出流,可以实现网络通讯的基本功能。同时,为了支持多客户端并发连接,...
- 在本项目中,使用C语言的socket API创建服务器(SlideWindowReceiver.c)和客户端(SlideWindowSender.c),分别模拟接收方和发送方。 4. **实现细节**: - 发送方(SlideWindowSender.c):初始化socket,建立...
在实际应用中,Socket编程涉及的概念和技术还包括套接字的创建、绑定、监听、接受、连接、读写操作,错误处理,多线程/多进程并发处理,以及更高级的特性如TCP的长连接、HTTP/HTTPS协议等。熟练掌握Socket编程,将为...
在我们的"JAVA socket 模拟聊天室"项目中,服务器端需要使用`ServerSocket`监听特定端口,等待客户端的连接请求。一旦客户端使用`Socket`发起连接,服务器端的`accept()`方法将阻塞直到连接建立。连接建立后,双方就...
7. 完成通信后,关闭Socket连接。 在实际编程中,我们还需要处理各种异常情况,比如网络连接中断、数据传输错误等,并确保在通信完成后正确关闭所有的流和Socket对象,防止资源泄露。同时,为了提高效率和可扩展性...
Android Socket连接,包含心跳检测,断线重连,数据发送等等 博客地址:http://blog.csdn.net/yuzhiqiang_1993/article/details/78094909
在Android平台上,我们可以利用Socket编程来模拟一个简单的HTTP服务器,以提供本地文件系统中的资源,如HTML文件,供外部设备(如浏览器)访问。这个过程涉及到Android系统的网络权限管理、Socket编程以及HTTP协议的...
"fx5以太网socket连接 测试ok.zip"这个文件名暗示了一个使用FX5系列PLC(可编程逻辑控制器)进行以太网Socket通信的测试项目。FX5是三菱电机推出的一款高端PLC,具备强大的网络通讯功能,适用于自动化控制系统的集成...
1. **创建Socket连接**:下载开始前,客户端需要先与服务器建立TCP连接。通过调用`socket()`函数创建一个Socket对象,然后使用`connect()`函数指定服务器的IP地址和端口号,建立连接。 2. **发送请求**:一旦连接...
1. **创建Socket连接**:SocketTool能够方便地创建TCP或UDP类型的Socket连接。TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,适合需要保证数据完整性的场景;而UDP(User Datagram ...
本示例是一个使用C语言的socket编程和多线程技术来实现的P2P应用模拟。 1. **C语言Socket编程**: - Socket是网络通信中的接口,它允许两个进程通过网络进行数据交换。在C语言中,我们使用`<sys/socket.h>`头文件...
本文将深入探讨如何通过SOCKET编程来模拟TCP通信的过程,帮助你理解TCP连接的各个阶段。 首先,TCP通信的基本流程包括三次握手(Three-way Handshake)和四次挥手(Four-way Handshake)。三次握手建立连接,四次...
在使用Socket模拟HTTP请求时,我们首先需要创建一个Socket实例,连接到指定的Web服务器IP地址和端口号(通常是80)。然后,我们将HTTP请求以字符串形式构造,包括上述的请求行、头部和可能的请求体。接下来,我们将...
本项目“C# Socket编程:一个简单的模拟QQ聊天软件”就是一个很好的示例,它展示了如何利用Socket实现多人在线聊天功能,类似于QQ的群聊。 首先,让我们深入了解Socket。Socket是网络通信的基础,它为应用程序提供...
1. 创建SOCKET连接:使用`socket_create()`函数创建一个SOCKET,指定协议类型(通常是AF_INET,表示IPv4)和套接字类型(通常是SOCK_STREAM,表示TCP)。 2. 连接服务器:使用`socket_connect()`函数与服务器的IP...
STM32分别以串口,硬件SPI,模拟并口驱动CH395,4个socket连接, 原路返回上位机发送的数据。串口模式支持更改工作波特率,硬件SPI速率最高36MHz, 模拟并口较快,这三种模式支持在stm32任意型号下。
TCP调试助手是一款强大的工具,主要用于帮助开发者在设计和测试网络应用程序时模拟Socket服务器和客户端的行为。这个工具的核心功能是提供一个友好的界面,使得开发者无需编写额外的代码就能直观地理解TCP连接的工作...
- **关闭连接(Close Connection)**:完成通信后,关闭Socket连接。 4. **HTTP响应构造**: 响应通常包括状态行(如"HTTP/1.1 200 OK"),响应头(如"Content-Type: text/html")和响应体(实际的HTML内容或其他...