package guoxp.bingosoft.learning.socket;
import java.io.*;
import java.io.InputStream;
import java.net.*;
public class SocketLearn extends Thread {
/**
* guorabbit 2008/07/27 Socket编程,改用循环形式接收客户端的响应.
*/
private Socket s;
public SocketLearn(Socket s) {
this.s = s;
}
public void run() {
try {
OutputStream os = s.getOutputStream();
InputStream is = s.getInputStream();
os.write("Hello,This is server.Welcome.".getBytes());
byte[] buf = new byte[100];
int len = is.read(buf);
System.out.println(new String(buf, 0, len));
os.close();
is.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
if (args.length > 0)
server();
else
client();
}
public static void server() {
try {
ServerSocket ss = new ServerSocket(6000);
while (true) {
Socket s = ss.accept();
new SocketLearn(s).start();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void client() {
try {
Socket s = new Socket(InetAddress.getByName(null), 6000);
OutputStream os = s.getOutputStream();
InputStream is = s.getInputStream();
os.write("Hi.This is guo!".getBytes());
byte[] buf = new byte[100];
int len = is.read(buf);
System.out.println(new String(buf, 0, len));
os.close();
is.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
在这个特定的场景中,我们讨论的是一个设计为连接多个服务器的Socket客户端。这个客户端程序能够向多个服务端发送消息,并且在消息中携带自身的ID,以便服务端识别消息来源。此外,它还具备了自动重连功能,即在非...
- **监听(Listen)**:服务器创建一个Socket,并绑定到特定的IP地址和端口上,然后调用listen函数开始监听来自客户端的连接请求。 - **接受(Accept)**:当有客户端请求连接时,服务器调用accept函数,接收连接...
- 当接收完三次数据后,服务器可以将处理结果通过`Socket`的`OutputStream`写回给客户端。 2. **客户端实现:** - 创建`Socket`实例,指定服务器的IP地址和端口号,建立连接。例如: ```java Socket ...
在这个实验中,我们将使用Socket API在C-S模式下构建一个可以相互交流的客户端。 Socket是Internet协议族的一部分,它提供了一种标准的接口,使得应用程序能够通过TCP/IP协议进行数据传输。TCP(Transmission ...
在"socketThread"这个标签下,我们可以推断这个实现可能涉及到了多线程处理,即每个客户端连接都在独立的线程中运行,确保了服务器的并发性能。 至于"压缩包子文件的文件名称列表"中的"kanglu",这可能是项目或代码...
Socket编程是计算机网络编程中的重要组成部分,特别是在TCP/IP协议栈中...通过"一个简单的socket客户端发送消息到服务器端程序"的学习,初学者可以逐步掌握网络通信的核心概念,并为更复杂的网络应用开发打下坚实基础。
SuperSocket 提供了一个高效、灵活的平台,使得开发者可以快速构建Socket应用程序,尤其适合需要实现客户端与服务器之间实时通信的场景。通过以上步骤,你将能够成功地搭建一个基础的SuperSocket客户端和服务端,...
4. 第四次挥手:客户端接收到FIN包后,发送一个ACK包作为回应,然后进入TIME_WAIT状态,等待一段时间确保服务器接收到ACK后,连接完全关闭。 在Python中,我们可以使用内置的socket库来实现客户端和服务器的通信。`...
学习Python网络通信的时候发现书上只有一个服务端对应一个客户端的情形,于是自己想自己动手实现一个服务端响应多个客户端。 首先建立服务器的socket来监听客户端的请求: tcpSerSock=socket(AF_INET,SOCK_STREAM) ...
在本文中,我们将深入探讨如何使用QT来实现一个TCP服务器,该服务器可以同时连接并处理多个客户端的请求。 首先,我们需要了解TCP(传输控制协议)的基本原理。TCP是一种面向连接的、可靠的、基于字节流的传输层...
在IT领域,网络通信是软件开发中的...通过以上步骤,你可以使用Qt构建一个支持多个客户端连接的TCP服务器。这个过程中,理解TCP协议的工作原理,熟练使用Qt的网络模块,以及灵活运用多线程编程,都是至关重要的技能。
- **发送/接收线程**:连接成功后,客户端可以创建多个线程来发送或接收数据,这样可以同时进行数据的发送和接收,提高效率。 6. **多线程通信中的同步与互斥**:为了防止线程间的资源竞争,需要使用锁(如互斥量...
在Socket通信中,多线程可以用来分别处理接收和发送数据,或者处理多个客户端连接,避免因为单线程的阻塞导致整个程序的响应变慢。例如,一个线程负责接收数据,另一个线程负责处理接收到的数据并发送响应。 3. **...
这两个函数可以将Socket与窗口消息或事件关联,当Socket有新的连接、数据接收或发送完成等事件发生时,系统会发送消息或触发事件,程序根据这些消息或事件来处理相应的网络操作。 对于TCP通信,我们需要创建Server...
在Java中,可以使用`ServerSocket`类来监听端口,`accept()`方法用于接收客户端连接: ```java ServerSocket serverSocket = new ServerSocket(8080); while (true) { Socket clientSocket = serverSocket.accept...
在IT领域,网络通信是不可或缺的一部分,而TCP(Transmission Control Protocol)套接字...此外,还可以扩展客户端功能,如添加多线程处理多个连接、实现非阻塞I/O或者使用异步I/O模型等,以提升程序的效率和用户体验。
Socket可以理解为网络上的两个应用程序之间建立的一种通信连接,它允许数据在客户端和服务器之间双向传输。Socket分为流式Socket(TCP)和数据报Socket(UDP)两种类型。TCP提供面向连接的服务,确保数据的可靠传输...
总的来说,"java多线程+Socket+Swing做的局域网聊天程序"是一个综合性的项目,涵盖了Java基础、网络编程以及GUI设计等多个方面,对于学习和理解Java应用开发具有很高的实践价值。通过这样的项目,开发者可以提升对...
对于长连接,其主要特点是保持连接状态,在连接建立后,可以进行多次数据传输,而不是每次交互都创建新的连接。这在高并发、低延迟的应用场景下尤为有用,例如在线游戏、实时数据推送等。 实现一个socket客户端的长...
总结,"文件接收客户端源码"是一个综合性的项目,涵盖了C++和C语言编程、MFC GUI开发、网络通信协议的运用、文件操作以及客户端服务器交互的设计等多个方面的知识。通过深入学习和理解这个源码,开发者可以提升自己...