今天做了一个不同语言之间 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()
分享到:
相关推荐
python socket客户端
Python 通过 socket 实现服务端和客户端相互间网络通信的例子 通过socket实现网络通信 通过thread多线程实现同时收发
socket客户端代码,使用c#完成,配合socket服务端一起试用,代码还不够成熟,有待优化,但是本人测试没有问题,可参考用于实现C/S系统的即时通讯系统
java与python的socket通信demo 自己修改成对应的ip和port后,运行服务端和客户端即可
Python3网络编程 Python3实现web服务器 Python实现的HTTP服务端(server)和客户端(clients)通信
Socket服务端客户端Socket服务端客户端Socket服务端客户端Socket服务端客户端Socket服务端客户端
本文实例讲述了python服务器与android客户端socket通信的方法。分享给大家供大家参考。具体实现方法如下: 首先,服务器端使用python完成,下面为python代码: 复制代码 代码如下:#server.py import socket def ...
本篇文章主要介绍了python:socket传输大文件示例,具有一定的参考价值,有兴趣的可以了解一下,
本文件实现了简单的socket创建,通过TCP协议把客户端指定目录下的所有文件发送到服务器下
Python Socket模块实现服务端与客户端通信
python+socket(tcp_client,tcp_server)。 包含客户端,服务器端详细代码以及说明,可以直接运行。
redis-py:Redis 的 Python 客户端
主要实现服务器端与多个客户端的连接,代码语言:python,模块:socketsever,客户端与服务器端实现相互的交接。
python使用socket向客户端发送数据的方法.docx
Python3 socket实现服务端,客户端传输视频,可选择传输帧率,图像分辨率,摄像头IP地址
socket server关闭时导致socket client也关闭 的原因及解决办法 tcp socket进程结束时,tcp socket客户端也会结束(崩溃)的原因及解决办法
ssdb-ya-又一个 ssdb 的 Python 客户端. 用来替代 Redis 的 NoSQL 数据库.
【方法】html调用本地python程序进行交互 前后端交互
Python编程题服务器与客户端交互的的程序Python编程题服务器与客户端交互的的程序Python编程题服务器与客户端交互的的程序Python编程题服务器与客户端交互的的程序Python编程题服务器与客户端交互的的程序
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程...