今天做了一个不同语言之间 C/S 的socket通讯实验, 还是发现了在不同语言间的问题. :)
服务器端
package p1;
import java.io.IOException;
import java.net.ServerSocket;
public class C1 {
private ServerSocket ss;
public C1() {
try {
int i = 0;
ss = new ServerSocket(10000);
while (true) {
i++;
T t = new T(ss.accept(), i);
Thread tt = new Thread(t);
tt.start();
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(ss != null){
try {
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
new C1();
}
}
package p1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class T implements Runnable {
private Socket socket;
private BufferedReader in;
private PrintWriter out;
private int i = 0;
public T(Socket socket, int i){
this.socket = socket;
this.i = i;
}
@Override
public void run() {
try {
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
in.readLine();
System.out.println(i + " Server Socket sleep 1 sec");
Thread.sleep(1000);
out = new PrintWriter(socket.getOutputStream());
out.write("this is " + i + " echo ");
out.flush();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void setSocket(Socket socket) {
this.socket = socket;
}
public Socket getSocket() {
return socket;
}
}
客户端: (注意send时, 后面要显示加一个 \r 来告诉java的socket:"数据发送完毕", 否则会一直在in.readLine()等待)
import time
class timer(threading.Thread):
def __init__(self, i):
threading.Thread.__init__(self)
self.i = i
def run(self):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('192.168.2.49', 10000))
print "connected";
sock.send(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) + "\r")
print "send data...";
sock.recv(1024);
print "recv data...";
sock.close()
def test():
n = int(raw_input("please input loop count"));
for i in range(1, n + 1):
t1=timer(i)
t1.start()
if __name__=='__main__':
test()
分享到:
相关推荐
Socket分为服务器端(Server Socket)和客户端(Client Socket),服务器端通常监听特定的端口,等待客户端的连接请求,而客户端则发起连接请求,一旦连接建立,双方就可以通过Socket发送和接收数据。 在这个项目中...
本文将深入探讨“android socketClient”的相关知识点,包括Socket的基本概念、Android中实现Socket客户端的方法以及与Python服务器进行交互的细节。 ### 1. Socket基础知识 Socket,也称为套接字,是网络编程中的...
在文档的行间散落着其他编程语言的名称,如Perl、Ruby、Java等,这可能意味着Python可以与这些语言进行交互或者提供了互操作性的支持。 8. Python在互联网技术中的应用 Python在文档中的提及和使用,显示了其在...
在IT领域,网络通信是核心部分之一,尤其是客户端与服务器之间的交互。本文将详细解析"Server客户端与服务器相互问候的服务器实现"这一主题,旨在帮助读者深入理解客户端和服务器如何进行基本的通信。 首先,我们要...
例如,在Java中,`java.net.Socket`和`java.net.ServerSocket`类分别代表客户端和服务器端的Socket,而在Python中,可以使用`socket`模块来创建和操作Socket。 以下是一个简单的Java Socket服务端示例: ```java ...
- 对于Python客户端,可以使用`from socketio import Client`,然后实例化`client = Client()`。 - 连接到服务器:`client.connect('http://localhost:5000')`。 - 发送事件:`client.emit('event_name', {'data'...
这些代码通常会使用如C、C++、Java或Python等编程语言编写,并利用操作系统提供的网络编程接口(如socket API)来实现TCP通信。 通过这个实验,学习者可以深入理解TCP连接的建立和断开、数据的发送和接收过程,以及...
Java的Socket类同样用于TCP通信,因此开发者可能利用了Python和Java之间的互操作性,例如通过Jython或者其他方式实现Python与Java的结合。 总结来说,这个Python CS模式TCP聊天室程序展示了以下几个核心知识点: 1...
在实际编程中,通常使用如Java的Socket API、Python的socket模块或者C++的Boost.Asio库来实现TCP服务器和客户端。这些库提供了处理网络连接、读写数据以及异常处理的接口。 总的来说,TCP服务器与客户端的交互是一...
为了实现这一过程,开发者通常会使用编程语言提供的Socket库,如Java的`java.net.Socket`和`ServerSocket`类,Python的`socket`模块,C++的`socket`函数等。在实际开发中,还需要考虑到错误处理、多线程(或多进程)...
HP-Socket 与应用程序通过接口进行交互,并完全解耦。任何应用只要实现了 HP-Socket 的接口规范都可以无缝整合 HP-Socket。 易用性 HP-Socket 的接口设计得非常简单和统一。HP-Socket 完全封装了所有底层通信细节...
在一个Web应用程序中,每个用户的浏览器与服务器之间的交互都可以通过一个唯一的`HttpSession`对象来标识。因此,利用`HttpSession`可以很方便地在WebSocket中传递用户的信息。 ##### 2. 实现步骤 **步骤一:用户...
然而,需要注意的是,Python在性能上可能不如C++或Java,因此在高并发场景下可能需要优化或者结合其他语言使用。 2. **游戏服务器架构** 游戏服务器通常采用客户端-服务器(Client-Server)架构,其中服务器接收...
客户端和服务器端通过Wifi连接,可以实现设备间的数据交互,例如智能家居控制、文件传输、在线游戏等应用。 **6. 实现步骤** - **配置网络环境**:确保设备已连接到同一Wifi网络。 - **编写客户端代码**:创建...
在异步Socket编程中,客户端(Client Socket)和服务器端(Server Socket)的交互过程如下: 1. **客户端初始化**:客户端首先创建一个Socket对象,并启动一个异步连接操作。这个操作通常不会立即完成,而是由操作...
Socket编程是计算机网络通信中的基础概念,主要用于实现客户端与服务器之间的数据交互。在这个主题中,我们将深入探讨如何进行简单的Socket编程,以及它在客户端和服务器通讯中的应用。 首先,我们需要理解Socket的...
从标签“服务端 服务端_客户端”来看,可能是由于重复,但可以理解为强调了服务端与客户端的交互是该项目的核心内容。 压缩包内的文件“UdpClient_Server”很可能是一个包含了服务端和客户端实现的源代码文件或可...
在Java或Python等编程语言中,客户端通常会创建一个Socket对象,通过这个对象连接到服务器的特定端口。然后,它会将用户的输入转化为字节流,通过Socket发送出去,并监听服务器的响应,将接收到的数据转化为可读的...
"TCP_Socket.zip"这个压缩包很可能包含了关于如何使用TCP Socket进行C-S(Client-Server,客户端-服务器)端到端实时交互的教程或代码示例。在这个场景中,TCP连接扮演着至关重要的角色,因为它提供了可靠的数据传输...
服务器端通常使用Java、Node.js、Python等编程语言实现,它们创建一个监听特定端口的Socket服务。当Web客户端(通常是JavaScript)发起连接请求时,服务器接受连接,并建立一个Socket通道。这个通道允许数据在服务器...