Python网络编程Socket应用,并解决了error:10054错误
2018-03-07 16:18
766 查看
首先我们写一个客户端:
然后在写一个服务器端
我们这里的服务器端是可以接收多个链接的,当第一个链接没有断开时,后面的链接一直等待,知道第一个链接终止,才会链接第二个..链接,依此类推。
并且完美解决了error:10054的强制关闭服务器端的错误!
测试方法,先运行服务器端脚本,
然后运行客户端脚本,并发送信息,
再次打开运行一个客户端脚本,并发送信息。
会发现,会在等待第一个链接断开,当第一个链接断开的时候就会开启第二个链接,这里已经解决了当起一个链接断开的时候强制关闭服务器端。
import socket # 客户端 发送一个数据,再接收一个数据 client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) #声明socket类型,同时生成链接对象 client.connect(('localhost',6969)) #建立一个链接,连接到本地的6969端口 while True: msg = input('>>:').strip() #strip默认取出字符串的头尾空格 client.send(msg.encode('utf-8')) #发送一条信息 python3 只接收btye流 data = client.recv(1024) #接收一个信息,并指定接收的大小 为1024字节 print('recv:',data.decode()) #输出我接收的信息 client.close() #关闭这个链接
然后在写一个服务器端
我们这里的服务器端是可以接收多个链接的,当第一个链接没有断开时,后面的链接一直等待,知道第一个链接终止,才会链接第二个..链接,依此类推。
并且完美解决了error:10054的强制关闭服务器端的错误!
import socket # 建立一个服务端 server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) server.bind(('localhost',6969)) #绑定要监听的端口 server.listen(5) #开始监听 表示可以使用五个链接排队 while True: # conn就是客户端链接过来而在服务端为期生成的一个链接实例 conn,addr = server.accept() #等待链接,多个链接的时候就会出现问题,其实返回了两个值 print(conn,addr) while True: try: data = conn.recv(1024) #接收数据 print('recv:',data.decode()) #打印接收到的数据 conn.send(data.upper()) #然后再发送数据 except ConnectionResetError as e: print('关闭了正在占线的链接!') break conn.close() server.close() #然后关闭服务
测试方法,先运行服务器端脚本,
然后运行客户端脚本,并发送信息,
再次打开运行一个客户端脚本,并发送信息。
会发现,会在等待第一个链接断开,当第一个链接断开的时候就会开启第二个链接,这里已经解决了当起一个链接断开的时候强制关闭服务器端。
相关文章推荐
- 解决出现[SQLServer 2000 Driver for JDBC]Error establishing socket.的错误
- Restify中接入Socket.io报Error:Can’t set headers的错误解决
- python中IndentationError: expected an indented block错误的解决方法
- Error detected while processing function pythoncomplete#Complete: 错误解决
- 解决Python中导出图片出现的错误SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position
- 【Python3】error: Microsoft Visual C++ 10.0 is required 错误解决办法
- 关于出现错误:_tkinter.TclError: couldn't open "E:\Python系列\Python程序\Python安装.gif"tkinter中不能打开GIF格式图片的解决办法
- ftp连接出现socket错误=#10054的解决方法
- python ImportError: No module named 的错误解决思路和方法
- 【初学python】错误SSLError: [Errno 1] _ssl.c:504:的解决记录
- 如何解决Python中的UnicodeEncodeError编码错误问题
- error LNK2001: unresolved external symbol __imp__WSAStartup@8 SOCKET应用显示错误时的解决方法
- 解决bs4在Python 3.5下出现“ImportError: cannot import name 'HTMLParseError'”错误
- 重启Erlang Socket服务时,报出{error, eaddrinuse}错误的解决方法
- paramiko 遭遇socket.error: Socket is closed 错误的解决办法
- Connection reset by peer: socket write error错误分析及解决
- 【已解决】Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level
- [python]"python[error] mysql_config not found"错误解决方法
- python+opencv开发环境之ValueError错误的解决方法
- 【已解决】Python脚本运行出现语法错误:IndentationError: unindent does not match any outer indentation level