python socket的c/s模式
来源:互联网 发布:信捷xc3软件 编辑:程序博客网 时间:2024/04/29 08:43
1、TCP建立连接的方法:
服务端:
第一步:建立socket对象;
第二步:设置socket选项(可选)
第三步:绑定到一个端口,也可以是一个网卡;
第四步:倾听连接。
客户端:
第一步:建立socket对象;
第二步:调用connect()建立一个和服务器的连接
2、服务端:
#!/usr/local/Python34/bin/python3#coding=gbkimport socket, tracebackhost = ''port = 51423#建立socket对象s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#设置和得到socket对象;当socket关闭后,本地端用于该socket的端口号立刻就可以被重用。s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)#绑定到一个端口s.bind((host, port))#倾听连接s.listen(1)print("done")while 1: #when connect error happen, skip the error try: ClientSock, ClientAddr = s.accept() except KeyboardInterrupt: raise except: traceback.print_exc() continue #Get informaion form client and reply try: print("Get connect from ", ClientSock.getpeername()) data = ClientSock.recv(1024) print("The information we get is %s" % str(data)) ClientSock.sendall(("I`ve got the information: ").encode()) ClientSock.sendall((data.decode()).encode()) while 1: str = input("What you want to say:") ClientSock.sendall(str.encode()) ClientSock.sendall(('\n').encode()) except (KeyboardInterrupt ,SystemError): raise except: traceback.print_exc() #Clocs socket try: ClientSock.close() except KeyboardInterrupt: raise except: traceback.print_exc()
3、客户端
#!/usr/local/Python34/bin/python3#coding=gbkimport socket, syshost = '10.15.89.150'# host = raw_input("Plz imput destination IP:") # data = raw_input("Plz imput what you want to submit:")port = 51423'''socket 模块中的socket(family,type[,proto])函数创建一个新的socket对象。family的取值通常是AF_INET。type 的取值通常是SOCK_STREAM(用于定向的连接,可靠的TCP连接)或SOCK_DGRAM(用于UDP):'''s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: s.connect((host, port)) except socket.gaierror as e: print("Address-related error connecting to server: %s" %e) sys.exit(1) except socket.error as e: print("Connection error: %s" %e) sys.exit(1)data = input("Plz imput what you want to submit:")s.send(data.encode())s.shutdown(1)print("Submit Complete")while 1: buf = s.recv(1024).decode() sys.stdout.write(buf)
0 0
- python socket的c/s模式
- SOCKET编程c/s模式(阻塞模式下的)
- C/S模式的socket套接字编程例子
- 基于socket通信的c/s模式开发
- C/S模式 socket tcp 传文件 的问题
- socket编程(一)最简单的c/s模式
- socket基本概念及C/S通信模式
- Android/Socket编程 简单C/S模式
- python实现聊天室--C/S模式
- 用socket编写的linux反向远程管理程序(c/s模式)
- java+swing C/s模式的socket编程与长短连接
- C/S,B/S模式的区别
- 最简单的socket c/s模型
- Socket创建C/S模型的小结
- 基于多线程的c/s socket类
- socket的C/S连接流程
- C/S最简单的socket通信
- C/S 模式的前途
- CocoaAsyncSocket使用笔记之GCDAsyncUdpSocket
- Mina框架数据发送流程
- live555学习笔记2-基础类
- 如何在CentOS/RHEL中安装基于Web的监控系统 linux-dash
- tab item是tabelview时,tablecell被遮住
- python socket的c/s模式
- ionic使用记录----栅格模式
- strtoul 函数
- Java集合和数组的排序方式总结
- mysql中的一些错误总结
- sgu 203
- 泊松分布的来源—公式推导—应用
- 关于WebView的那些事
- REST与SOA两种架构的异同比较