做个笔记,若有错误,望指出
转载自:https://www.runoob.com/python3/python3-socket.html
参考资料: https://www.cnblogs.com/jassin-du/p/7904497.html
socket.socket([family[, type[, proto]]])
参数:
family: 套接字家族可以使AF_UNIX或者AF_INET()
type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM
套接字家族:
基于文件类型的套接字家族:AF_UNIX
unix一切皆文件,基于文件的套接字调用的就是底层的文件系统来取数据,两个套接字进程运行在同一机器,可以通过访问同一个文件系统间接完成通信
基于网络类型的套接字家族:AF_INET
网络编程大部分时候只使用AF_INET
服务器端配置
import socket
import sys
serversocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#获取本机主机名
host = socket.gethostname()
port = 9999
#邦定端口号
serversocket.bind((host,port))
#设置最大连接数
serversocket.listen(5)
while True:
#建立客户端连接
clientsocket,addr = serversocket.accept()
print("连接地扯:%s"% str(addr))
msg="欢迎访问菜鸟教程!"+'\r\n'
clientsocket.send(msg.encode('utf-8'))
clientsocket.close()
客户端配置
import sys
import socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host=socket.gethostname()
port=9999
#连接服务指定主机和端口号
s.connect((host,port))
#接收小于1024字节的数据
msg=s.recv(1024)
s.close()
print(msg.decode('utf-8'))