python——简单tcp

python实现简单的tcp通讯

服务端:

import socket
import threading
import time

#创建socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

#监听端口
s.bind(('192.168.1.7',9999))
s.listen(5)
print 'Waiting for connection...'

def tcplink(sock,addr):
    print 'Accept new connection from %s:%s...' % addr
    sock.send('Welcome!')
    while True:
        data=sock.recv(1024)
        if data=='exit' or not data:
            break
        print '%s:%s' % (addr[0],data)
        sock.send('Hello,%s!'%data)
    sock.close()
    print 'Connection from %s:%s closed.'%addr
    
while True:
    
    #接受一个新连接
    sock,addr=s.accept()
    
    #创建新线程来处理TCP连接
    t=threading.Thread(target=tcplink,args=(sock,addr))
    t.start()

特别注意:

在使用线程时,函数的调用以及参数传递必须使用

target=tcplink,args=(sock,addr)

如果使用

target=tcplink(sock,addr)

线程会出现阻塞的情况。

客户端

import socket

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

s.connect(('192.168.1.7',9999))

print s.recv(1024)

while True:
    data = raw_input('Please intput your mesage:')
    str_mesg = str(data)
    s.send(str_mesg)
    print s.recv(1024)

s.send('exit')
s.close()

原文地址:https://www.cnblogs.com/happen-/p/8418791.html