Socket

2018-06-18 02:48:13来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)

socket和file的区别:

  • file模块是针对某个指定文件进行【打开】【读写】【关闭】
  • socket模块是针对 服务器端 和 客户端Socket 进行【打开】【读写】【关闭】

                                         

 1 # coding:utf-8
 2 __author__="dzh"
 3 import socket
 4 #服务端地址
 5 ip=("0.0.0.0",9998)
 6 #生成socket实例
 7 sk=socket.socket()
 8 #实例绑定地址
 9 sk.bind(ip)
10 #设置监听数,即设置最多能有多少个客户端连接进来
11 sk.listen(5)
12 while True:
13 #开始监听,当没有客户端连接进来,一直阻塞在这。accept()返回两个值:conn:接到客户端的连接请求产生的一个专门响应该客户端的实例;addr:客户端地址[host,port]
14     conn,addr=sk.accept()
15     while True:
16 #若客户端若断开,会导致服务端报错(ConnectionResetErro),所以在这用异常处理机制
17         try:
18             #接受客户端的消息
19             client_message=conn.recv(1024)
20         except ConnectionResetError:
21             break
22         else:
23             print(client_message.decode())
24             #响应客户端
25             server_response=input("请输入响应信息:")
26             conn.send(bytes("server:%s"%server_response,encoding='utf-8'))
socket_server
 1 import socket
 2 ip=("localhost",9998)
 3 sk=socket.socket()
 4 #通过服务端地址连接到服务端
 5 sk.connect(ip)
 6 while True:
 7     cmd=input("请输:")
 8     #如果服务端接收不到数据,会一直阻塞
 9     if not cmd:
10         pass
11     else:
12         sk.send(bytes('client:%s'%cmd,encoding="utf-8"))
13         b=sk.recv(1024)
14         print(b.decode())
socket_client

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Python Django框架笔记(四):数据分页和CSRF跨站点请求伪造

下一篇:python全局替换文件内容脚本第1版