`
lizhensan
  • 浏览: 377812 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

socket 长连接 模拟

    博客分类:
  • java
 
阅读更多
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长连接demo

    在"socket_my_src_保持长连接_模拟学生行为统计,刷卡"这个例子中,可能涉及到模拟学生刷卡的行为,通过长连接实时上报学生的刷卡数据,服务器端接收到数据后进行统计分析。这种实时通信的方式能够及时反映学生的...

    sockettool tcp模拟工具

    6. **线程与并发**:对于多线程或并发连接的处理,SocketTool 可以创建多个模拟服务器线程,以测试客户端的并发处理能力。 7. **日志记录**:工具通常提供日志功能,记录每一次通信的细节,方便分析和调试。 在...

    Socket模拟服务器_Socket模拟服务器_

    总之,Socket模拟服务器的核心在于接收客户端连接,读取并处理客户端发送的数据,然后返回响应。通过使用ServerSocket和Socket类,结合输入/输出流,可以实现网络通讯的基本功能。同时,为了支持多客户端并发连接,...

    使用socket编程模拟滑动窗口协议

    - 在本项目中,使用C语言的socket API创建服务器(SlideWindowReceiver.c)和客户端(SlideWindowSender.c),分别模拟接收方和发送方。 4. **实现细节**: - 发送方(SlideWindowSender.c):初始化socket,建立...

    Socket TCP UDP 客户端 服务器模拟工具

    在实际应用中,Socket编程涉及的概念和技术还包括套接字的创建、绑定、监听、接受、连接、读写操作,错误处理,多线程/多进程并发处理,以及更高级的特性如TCP的长连接、HTTP/HTTPS协议等。熟练掌握Socket编程,将为...

    JAVA socket 模拟聊天室

    在我们的"JAVA socket 模拟聊天室"项目中,服务器端需要使用`ServerSocket`监听特定端口,等待客户端的连接请求。一旦客户端使用`Socket`发起连接,服务器端的`accept()`方法将阻塞直到连接建立。连接建立后,双方就...

    Socket模拟客户端与服务端

    7. 完成通信后,关闭Socket连接。 在实际编程中,我们还需要处理各种异常情况,比如网络连接中断、数据传输错误等,并确保在通信完成后正确关闭所有的流和Socket对象,防止资源泄露。同时,为了提高效率和可扩展性...

    Android下socket模拟http server

    在Android平台上,我们可以利用Socket编程来模拟一个简单的HTTP服务器,以提供本地文件系统中的资源,如HTML文件,供外部设备(如浏览器)访问。这个过程涉及到Android系统的网络权限管理、Socket编程以及HTTP协议的...

    fx5以太网socket连接 测试ok.zip

    "fx5以太网socket连接 测试ok.zip"这个文件名暗示了一个使用FX5系列PLC(可编程逻辑控制器)进行以太网Socket通信的测试项目。FX5是三菱电机推出的一款高端PLC,具备强大的网络通讯功能,适用于自动化控制系统的集成...

    基于socket的下载模拟

    1. **创建Socket连接**:下载开始前,客户端需要先与服务器建立TCP连接。通过调用`socket()`函数创建一个Socket对象,然后使用`connect()`函数指定服务器的IP地址和端口号,建立连接。 2. **发送请求**:一旦连接...

    SocketTool(测试工具)

    1. **创建Socket连接**:SocketTool能够方便地创建TCP或UDP类型的Socket连接。TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,适合需要保证数据完整性的场景;而UDP(User Datagram ...

    c语言socket写的模拟p2p应用例子

    本示例是一个使用C语言的socket编程和多线程技术来实现的P2P应用模拟。 1. **C语言Socket编程**: - Socket是网络通信中的接口,它允许两个进程通过网络进行数据交换。在C语言中,我们使用`<sys/socket.h>`头文件...

    模拟TCP通信(SOCKET编程)

    本文将深入探讨如何通过SOCKET编程来模拟TCP通信的过程,帮助你理解TCP连接的各个阶段。 首先,TCP通信的基本流程包括三次握手(Three-way Handshake)和四次挥手(Four-way Handshake)。三次握手建立连接,四次...

    socket模拟HTTP协议头

    在使用Socket模拟HTTP请求时,我们首先需要创建一个Socket实例,连接到指定的Web服务器IP地址和端口号(通常是80)。然后,我们将HTTP请求以字符串形式构造,包括上述的请求行、头部和可能的请求体。接下来,我们将...

    c# socket编程 一个简单的模拟QQ聊天软件 可以群聊

    本项目“C# Socket编程:一个简单的模拟QQ聊天软件”就是一个很好的示例,它展示了如何利用Socket实现多人在线聊天功能,类似于QQ的群聊。 首先,让我们深入了解Socket。Socket是网络通信的基础,它为应用程序提供...

    PHP版SOCKET模拟提交POST消息(源码)

    1. 创建SOCKET连接:使用`socket_create()`函数创建一个SOCKET,指定协议类型(通常是AF_INET,表示IPv4)和套接字类型(通常是SOCK_STREAM,表示TCP)。 2. 连接服务器:使用`socket_connect()`函数与服务器的IP...

    STM32分别以串口,硬件SPI,模拟并口驱动CH395,4个socket连接

    STM32分别以串口,硬件SPI,模拟并口驱动CH395,4个socket连接, 原路返回上位机发送的数据。串口模式支持更改工作波特率,硬件SPI速率最高36MHz, 模拟并口较快,这三种模式支持在stm32任意型号下。

    TCP调试助手 模拟Socket服务器和客服端

    TCP调试助手是一款强大的工具,主要用于帮助开发者在设计和测试网络应用程序时模拟Socket服务器和客户端的行为。这个工具的核心功能是提供一个友好的界面,使得开发者无需编写额外的代码就能直观地理解TCP连接的工作...

    模拟http服务器(socket使用)

    - **关闭连接(Close Connection)**:完成通信后,关闭Socket连接。 4. **HTTP响应构造**: 响应通常包括状态行(如"HTTP/1.1 200 OK"),响应头(如"Content-Type: text/html")和响应体(实际的HTML内容或其他...

    模拟出很多SOCKET服务器

    "模拟出很多SOCKET服务器"的场景通常出现在测试、实验或者系统设计中,目的是为了模拟多设备环境,以便更好地理解和优化服务器处理并发连接的能力。在这个项目中,我们将深入探讨如何在一台计算机上创建并运行多个...

Global site tag (gtag.js) - Google Analytics