python学习系列(八) --- socket实现简单的即时通讯

来源:互联网 发布:视频上课软件 编辑:程序博客网 时间:2024/05/08 19:33

tcpclient.py

# -*- coding: utf-8 -*-import socketimport 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

# -*- coding: utf-8 -*-import socketimport 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_socketdef handle_client():    while True:                request = client_socket.recv(1024)              print "[*] Received:%s" % requestdef 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()


0 0