• udp与tcp


    一、udp

     1 from socket import *
     2 
     3 
     4 def send_msg(udp_socket):
     5     send_data = input("请输入发送数据:")  
     6     udp_socket.sendto(send_data.encode("utf-8"),("192.168.43.37",8080))
     7 
     8 def recv_msg(udp_socket):
     9     recv_data = udp_socket.recvfrom(1024)  #本次接受最大字节数
    10     #接收元祖(数据,(发送方IP,端口))
    11     recv_msg = recv_data[0]  
    12     send_addr = recv_data[1]
    13     #打印接受数据
    14     print('%s:%s' % (str(send_addr),recv_msg.decode('gbk')))
    15 
    16 def main():
    17     udp_socket = socket(AF_INET,SOCK_DGRAM)
    18     local_addr = ('',8080)
    19     udp_socket.bind(local_addr)  #必须绑定自己电脑IP端口
    20     while True:
    21         send_msg(udp_socket)
    22         recv_msg(udp_socket)
    23         if send_msg == "exit":
    24             break
    25         #udp_socket.sendto(b"abcd",("192.168.43.37",8080))
    26     #3.接受数据
    27     #4.关闭套接字
    28     udp_socket.close()
    29 
    30 
    31 if __name__ == "__main__":
    32     main()
    收取与发送udp

    UDP编程的一般步骤是:
    1、创建一个socket函数;
    2、设置socket属性,用函数setsockopt();* 可选
    3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
    4、循环接收数据,用函数recvfrom();
    5、设置对方的IP地址和端口等属性;
    6、发送数据,用函数sendto();
    7、关闭套接字;

    二、tcp

     1 from socket import *
     2 
     3 
     4 def main():
     5     #创建套接字
     6     tcp_client_socket = socket(AF_INET,SOCK_STREAM)
     7 
     8     server_ip = input("请输入IP:")
     9     server_port = int(input("端口:"))
    10     server_addr = (server_ip,server_port)
    11     #链接服务器
    12 
    13     tcp_client_socket.connect(server_addr)
    14     #发送数据
    15     send_data = input("发送:")
    16 
    17     tcp_client_socket.send(send_data.encode("gbk"))
    18     #接受数据
    19     recvdata = tcp_client_socket.recv(1024)
    20     print("接收到的:",recvdata.decode('utf-8'))
    21     #关闭套接字
    22     tcp_client_socket.close()
    23 
    24 
    25 if __name__ == "__main__":
    26     main()
    tcp客户端

     TCP编程的客户端一般步骤是:

    1、创建一个socket函数;
    2、设置socket属性,用函数setsockopt();* 可选
    3、绑定IP地址、端口等信息到socket上,用函数bind();* 可选
    4、设置要连接的对方的IP地址和端口等属性;
    5、连接服务器,用函数connect();
    6、收发数据,用函数send()和recv(),或者read()和write();
    7、关闭套接字;

     1 from socket import *
     2 
     3 
     4 def main():
     5     #创建套接字
     6     tcp_server_socket = socket(AF_INET,SOCK_STREAM)
     7     
     8     address = ('',8080)
     9     #绑定ip地址
    10     tcp_server_socket.bind(address)
    11 
    12     #监听状态
    13     
    14     tcp_server_socket.listen(128) #让默认套接字由主动变被动
    15     #等待客户端链接
    16     while True:     #多个客户
    17         client_socket,client_addr = tcp_server_socket.accept()
    18         print("新客户端:%s" % str(client_addr))
    19         #接收数据
    20         while True:     #多次服务
    21             recv_data = client_socket.recv(1024)
    22             print("客户端发送接收到的:",recv_data.decode('gbk'))
    23             #如果recv解堵塞
    24             #1.客户端发送了数据
    25             #2.客户端调用close
    26             if not recv_data:
    27                 break
    28         client_socket.close()
    29         print("客户端:%s已发送完毕" % str(client_addr))
    30         
    31     tcp_server_socket.close()
    32 
    33 
    34 if __name__ == "__main__":
    35     main()
    tcp服务器

    TCP编程的服务器端一般步骤是:

    1、创建一个socket函数;
    2、设置socket属性,用函数setsockopt(); * 可选
    3、绑定IP地址、端口等信息到socket上,用函数bind();
    4、开启监听,用函数listen();
    5、接收客户端上来的连接,用函数accept();
    6、收发数据,用函数send()和recv(),或者read()和write();
    7、关闭网络连接;
    8、关闭监听;

    三、区别:

    1、tcp面向连接,udp无连接,发送数据前不需要建立连接

    2、tcp传输数据安全

    3、tcp传输支持一对一通信,而udp传输支持多样通信

  • 相关阅读:
    php 下设置cookie问题
    js 页面无滚动条添加滚轮事件
    Python中关于字符串的问题
    Python 字符串相加问题
    ajax 同步和异步
    重叠div鼠标经过事件
    Myeclipse中将项目上传到码云
    eclipse debug的时候提示debug Edit Source Lookup path
    阿里云+wordpress搭建个人博客网站
    centos7 安装mysql
  • 原文地址:https://www.cnblogs.com/ybxw/p/11116967.html
Copyright © 2020-2023  润新知