本文实例讲述了Python基于socket实现简单的即时通讯功能。分享给大家供大家参考,具体如下:
客户端tcpclient.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# -*- coding: utf-8 -*-
import socket
import threading
# 目标地址IP/URL及端口
target_host = "127.0.0.1"
target_port = 9999
# 创建一个socket对象
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
# 连接主机
client.connect((target_host,target_port))
def handle_send():
while True :
content = raw_input ()
client.send(content)
def handle_receive():
while True :
response = client.recv( 4096 )
print response
send_handler = threading.Thread(target = handle_send,args = ())
send_handler.start()
receive_handler = threading.Thread(target = handle_receive,args = ())
receive_handler.start()
|
服务器端tcpserver.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# -*- coding: utf-8 -*-
import socket
import threading
# 监听的IP及端口
bind_ip = "127.0.0.1"
bind_port = 9999
#socket 服务器初始化
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind((bind_ip,bind_port))
server.listen( 5 )
print "[*] Listening on %s:%d" % (bind_ip,bind_port)
# 定义函数handle_client,输入参数client_socket
def handle_client():
while True :
request = client_socket.recv( 1024 )
print "[*] Received:%s" % request
def handle_send():
while True :
content = raw_input ()
client_socket.send(content);
#阻塞在这里,等待接收客户端的数据
client_socket,addr = server.accept()
print "[*] Accept connection from:%s:%d" % (addr[ 0 ],addr[ 1 ])
#创建一个线程
client_handler = threading.Thread(target = handle_client,args = ())
client_handler.start()
send_handler = threading.Thread(target = handle_send,args = ())
send_handler.start()
|
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://blog.csdn.net/jinzhichaoshuiping/article/details/43372307