python tcp

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()

 

posted on 2018-01-19 14:34  paulversion  阅读(135)  评论(0编辑  收藏  举报