1.直接上代码
server: __author__ = ‘Alex‘ #coding:utf-8 import socket ip_port = (‘127.0.0.1‘,8000) sk = socket.socket() sk.bind(ip_port) sk.listen(5) print ("服务端启动...") while True: conn,addr = sk.accept() while True: try: recv_data = conn.recv(1024) if len(recv_data) == 0:break except Exception as e: print ("意外中断") break print (str(recv_data,"utf8")) send_data = input(">>>>>>") conn.sendall(bytes(send_data,"utf8")) conn.close()
######################################################### client: __author__ = ‘Alex‘ #coding:utf-8 import socket ip_port = (‘127.0.0.1‘,8000) sk = socket.socket() sk.connect(ip_port) print ("客户端启动...") while True: send_data = input(">>>>>>>") if send_data == ‘exit‘: break sk.send(bytes(send_data,"utf8")) recv_data = sk.recv(1024) print (str(recv_data,"utf8")) sk.close()
这个程序里面要做几点说明:1,如果客户端发exit,那么服务端会接收到一个空字符串,因为可以通过对接收的字符串长度的判断来知道客户端是否退出了;2,如果客户端是通过程序终止的方式来关闭,那么服务器会收到一个Exception,那么服务端要对应的做异常处理(WINDOWS环境下),如果是LINUX的情况下,程序终止会导致服务端接收到空字符串。
原文:http://www.cnblogs.com/python-study/p/5789530.html