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() # 关闭服务器套接字(可选)
建立网络连接思想:
服务端:

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()
客户端:

1 创建套接字 # socket.socket(socket.AF_INET,socket.SOCK_STREAM) 2 连接远端地址 # s.connect() 3 连接后发送数据 # s.sendall(), 4 接收数据 # s.recv() 5 传输完毕后,关闭套接字 #s.close()