tcp服务器端:
创建和运行TCP服务端一般需要五个步骤:
1:创建Socket对象,绑定Socket到本地ip与端口(bind)
2:开始监听连接(listen)
3:进入循环,不断接收客户端的连接请求(accept)
4:接收传来的数据,并发送给对方数据(recv,send())
5:传输完毕后,关闭Socket (close)
如下为server代码
#coding:utf-8
import socket
import threading
import time
#该函数为处理函数
def dealClient(sock,addr):
print('Accept new connection from %s:%s' % addr)
#向客户端发送数据
sock.send(b'Hello,I am server!')
while True:
#接收客户端数据
data =sock.recv(1024)
time.sleep(1)
if not data or data.decode('utf-8') == 'exit':
break
print '-->>%s!' % data.decode('utf-8')
#向客户端发送数据
sock.send(('Loop_Msg: %s!' % data.decode('utf-8')).encode('utf-8'))
sock.close()
print('Connection from %s:%s closed.' % addr)
if __name__ == '__main__' :
#创建socket对象(tcp)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#绑定服务器和要监听的端口
s.bind(('127.0.0.1',9999))
#监听
s.listen(5)
print('Waiting for connection...')
while True :
#接受客户端连接
scok ,addr = s.accept()
#创建新线程来处理tcp连接
t = threading.Thread(target = dealClient,args=(scok,addr))
t.start()
tcp客户端
tcp客户端的创建和运行需要三个步骤:
1:创建socket对象,连接服务端地址(connect)
2:连接后发送数据和接收数据
3:传输完毕,关闭socket(close)
如下代码为client端代码
#coding:utf-8
import socket
#初始化socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#连接服务器的地址和端口
s.connect(('127.0.0.1',9999))
#接收1024字节大小的消息
print('---->>'+s.recv(1024).decode('utf-8'))
#向服务器发送消息
s.send(b'Hello,I am a client')
#接收1024字节大小的消息
print('--->>'+s.recv(1024).decode('utf-8'))
s.send(b'exit')
#关闭连接
#切勿忘记关闭连接(如果忘记会产生长连接)
s.close()