网络编程

  • 端口

    ip地址区分计算机,端口号区分进程
    网络编程_第1张图片
    网络编程_第2张图片
  • socket
    网络编程_第3张图片
    网络编程_第4张图片

udp套接字:(基本不用)

发送数据:
网络编程_第5张图片

接收数据:
网络编程_第6张图片
  • Python3和ipython3
    网络编程_第7张图片

    网络编程_第8张图片
  • 半双工udp聊天器:
    网络编程_第9张图片

    while True改造:
    网络编程_第10张图片

tcp套接字:

tcp比udp更安全

tcp客户端:
网络编程_第11张图片
tcp服务端:
网络编程_第12张图片
网络编程_第13张图片

while True改造:
网络编程_第14张图片
网络编程_第15张图片

下载文件案例:
网络编程_第16张图片

文件下载客户端:
网络编程_第17张图片

文件下载服务端:

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()
网络编程_第18张图片

你可能感兴趣的:(网络编程)