python 中socket模块及用法

socket是两台计算机用于网络连接,实现数据交换,所必需的一对端口..

在python中,socket就是一个模块.其他数据实现都是socket模块帮我们实现.

 1 import socket
 2 s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)        # 创建TCP Socket
 3 s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)         # 创建UDP Socket
 4 # 不写默认family = socket.AF_INET, type = socket.SOCK_STREAM
 5 # socket.AF_UNIX    只能够用于单一的Unix系统进程间通信
 6 # socket.AF_INET      服务器之间网络通信
 7 # socket.AF_INET6     IPV6
 8 
 9 s.bind(('127.0.0.1',8898))      # 作为服务端时,把服务端地址绑定到socket    (知道我是谁)
10 s.connect(('127.0.0.1',8898))   # 做为客户端时,把服务端地址绑定到socket    (要知道发消息给谁)
11 s.listen(1)          # 监听链接,参数为同时等待的客户端数目
12 conn,addr = s.accept() # 接受客户端链接
13 ret = conn.recv(1024)  # 接收客户端发送的数据,参数是一次最大读取字节数
14 print(ret)       # 打印客户端数据(字节形式,需解码)
15 conn.send(b'hi')        # 向客户端发送数据,(字节形式,需编码)
16 conn.close()       # 关闭客户端套接字
17 s.close()        # 关闭服务器套接字(可选)
socket网络传输相关参数

建立网络连接思想:

服务端:

1 创建套接字,绑定套接字到本地IP与端口           # socket.socket(socket.AF_INET,socket.SOCK_STREAM)
2.绑定套接字到本地IP与端口                     # s.bind()
3 开始监听连接                                #s.listen()
4 进入循环,不断接受客户端的连接请求             # s.accept()
5 然后接收传来的数据                          # s.recv()
6 发送给对方数据                               # s.sendall()
7 传输完毕后,关闭套接字                     # s.close()
TCP服务端思想

客户端:

1 创建套接字       # socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
2 连接远端地址       # s.connect()
3 连接后发送数据          # s.sendall(), 
4 接收数据                # s.recv()
5 传输完毕后,关闭套接字          #s.close()
TCP客户端思想
原文地址:https://www.cnblogs.com/NoteBook3013/p/10402274.html