-
端口
ip地址区分计算机,端口号区分进程
-
socket
udp套接字:(基本不用)
发送数据:![](https://img.haomeiwen.com/i14792324/5be5956f86b2f616.png)
![](https://img.haomeiwen.com/i14792324/439eb0e6540c179d.png)
-
Python3和ipython3
-
半双工udp聊天器:
while True改造:
tcp套接字:
tcp比udp更安全
![](https://img.haomeiwen.com/i14792324/f311ca44f7eaa6e8.png)
![](https://img.haomeiwen.com/i14792324/19c251202be8f8d4.png)
![](https://img.haomeiwen.com/i14792324/fc474ce498531840.png)
![](https://img.haomeiwen.com/i14792324/4f65687c97af7a28.png)
![](https://img.haomeiwen.com/i14792324/8b63f7517c065d5e.png)
下载文件案例:
文件下载客户端:
![](https://img.haomeiwen.com/i14792324/c8896ebfc96868db.png)
文件下载服务端:
import socket
def send_file_2_client(new_client_socket):
file_name = new_client_socket.recv(1024).decode("utf-8")
file_content = None
try:
f = open(file_name, "rb")
file_content = f.read()
f.close()
except Exception as ret:
print("没有要下载的文件%s" % file_name)
if file_content:
new_client_socket.send(file_content)
def main():
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp_server_socket.bind("", 7890)
tcp_server_socket.listen(128)
while True:
new_client_socket, client_addr = tcp_server_socket.accept()
send_file_2_client(new_client_socket)
new_client_socket.close()
tcp_server_socket.close(new_client_socket, client_addr)
if __name__ == "__main__":
main()
![](https://img.haomeiwen.com/i14792324/8f6863669f33d484.png)
网友评论