一个简单的会先客户端/服务器应用
来源:互联网 发布:淘宝的笛子 编辑:程序博客网 时间:2024/04/29 22:08
不管服务器从客户端收到什么输入,都会将其回显出来,在命令行中指定TCP接口
几个注意的地方:
要使用socket.error要记得提前导入"from socket import error"
用docopt从命令行中取得端口号,这是字符串类型的,因为是端口号,从命令行取出来后要变成整型 int( )就ok
python3中socket的send()和sendall()的参数得是字节类型的,recev返回的也是字节类型的
字节转换为字符串:byte.decode()
字符串转化换为字节:str.encode()
"""Socket Server ExampleUsage: server <port>"""from docopt import docoptimport socketfrom socket import errorhost='localhost'backlog=5buffersize=2048def echo_server(port): sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) server_address=(host,port) sock.bind(server_address) sock.listen(backlog) while True: print("Waiting to receive message from client") client,address=sock.accept()#client是新的套接字对象,address是连接客户端的地址 data=client.recv(buffersize)//这里返回字节bytes类型 if data: print("Data:%s"%data) client.send(data)//这里可以正常send print("send %s bytes to %s"%(data,address)) client.close()if __name__=='__main__': argument=docopt(__doc__) port=int(argument['<port>']) # print(port) echo_server(port)
"""Socket Client ExampleUsage: server <port>"""from docopt import docoptimport socketimport sysfrom socket import errnohost='localhost'buffersize=16def echo_client(port): sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) server_address=(host,port) print("connect to %s port %s"%server_address) sock.connect(server_address) #连上之后要发送数据啦 try: message="Test message.This will be echoed"//message是str print("send:%s"%message) sock.sendall(message.encode())//这里的参数得是字节类型的 amount_received=0 amount_expected=len(message) while amount_received<amount_expected: data=sock.recv(buffersize) amount_received+=len(data) print("Received:%s"%data) except socket.error as e: print("Socket error:%s"%str(e)) except Exception as e: print("other Expection:%s"%str(e)) finally: print("closing connection to the server") sock.close()if __name__=='__main__': argument=docopt(__doc__) port=int(argument['<port>']) echo_client(port)
0 0
- 一个简单的会先客户端/服务器应用
- 邮槽-简单的客户端服务器应用
- 一个简单的IOCP服务器/客户端类
- 一个简单的客户端-服务器模型
- 一个简单的IOCP服务器/客户端类
- 一个简单的例子先
- 一个简单的linux下的服务器+客户端的编写
- libevent实现的一个简单的服务器和客户端程序
- 用Java实现一个简单的服务器与客户端程序
- 使用jrtplib写的一个简单服务器和客户端程序
- 用Java实现一个简单的服务器与客户端程序
- 一个简单的TCP服务器与客户端示例
- Python一个简单的通信程序(客户端 服务器)
- 一个简单的时间获取客户端——服务器程序
- linux下使用管道实现一个简单的服务器/客户端
- 一个简单的时间获取客户端/服务器程序
- 【UNP学习笔记】一个简单的服务器/客户端程序
- 简单回显客户端服务器应用
- Linux 下查看局域网内所有主机IP和MAC
- HTTP请求GET,POST
- android 进行拍照操作时对 onActivityResult()的封装隔离
- MiniNavigationDrawer
- Linux内核的开始main.c
- 一个简单的会先客户端/服务器应用
- 第三周--项目1-顺序表的基本运算
- 12章上机三 客户
- 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
- 例题:安迪的第一个字典(UVa 10815)
- HTTP/FTP客户端开发库
- Tomcat系统架构与设计模式
- 3分钟教会你如何在共享表格时仅共享部分数据
- Hadoop技术内幕之RPC框架解析(上)