<1>python:网络通信
ip查询
mac:ifconfig
win:ipconfig
TCP与UDP
TCP - 传输控制协议
UDP- 用户数据报协议
dest_ip:目的地址
src_ip:源地址
dest_port:目标端口
src_port:源端口
content:内容
知名端口(0 ~ 1023),动态端口(1024 ~ 65535)
HTTP:80
HTTPS:443
FTP:21
单工:只能单边通信,收或者发信息
半双工:能收或者发信息,但不能同时进行
双工:能同时进行收或者发信息
socket - UDP消息发送与接收
发送:
import socket
# 实例化socket类
# AF_INET:ipv4
# SOCK_DGRAM - udp协议;SOCK_STREAM - tcp协议
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据
msg = bytes('你好',encoding='unicode_escape')
udp_socket.sendto(msg, ("10.94.86.129",8888))
# 关闭连接
udp_socket.close()
接收:
import socket
# 实例化socket类,创建连接
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 设置程序端口
localaddr = ("", 8888)
udp_socket.bind(localaddr)
# 接受消息并打印
recv_data = udp_socket.recvfrom(2048)
recv_msg = recv_data[0].decode('unicode_escape')
recv_addr = recv_data[1]
print(recv_addr)
print(recv_msg)
# 关闭连接
udp_socket.close()
socket——UDP消息发送与接收
server端
import socket
def main():
# 1.买个手机(创建套接字 socket)
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.插入电话卡(绑定本地信息 bind)
local_addr = ('', 8000)
tcp_socket.bind(local_addr)
# 3.设置为响铃模式(让默认的套接字由主动变为被动 listen)
tcp_socket.listen(128)
# 4.等待别人的电话(等待客户端链接 accept);tcp_socket负责监听,accept返回的socket负责通信
new_tcp_socket, client_addr = tcp_socket.accept()
# 5.接听(接收数据 recv)
recv_data = new_tcp_socket.recv(1024)
recv_msg = recv_data.decode('unicode_escape')
print(recv_msg)
# 6.回复
msg = input()
msg = bytes(msg, encoding='unicode_escape')
new_tcp_socket.send(msg)
# 7.挂断
new_tcp_socket.close()
tcp_socket.close()
if __name__ == '__main__':
main()
client端
import socket
def main():
# 1.创建套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.绑定端口
tcp_socket.bind(('',8001))
# 3.连接服务器
tcp_socket.connect(('127.0.0.1', 8000))
# 4.发送消息
msg = input()
msg = bytes(msg, encoding='unicode_escape')
tcp_socket.send(msg)
# 5.接收消息
recv_data = tcp_socket.recv(1024)
recv_msg = recv_data.decode('unicode_escape')
print(recv_msg)
# 6.关闭
tcp_socket.close()
exit()
if __name__ == '__main__':
main()

浙公网安备 33010602011771号