zoukankan      html  css  js  c++  java
  • python-socket2

    UDP,服务端

    #! /usr/bin/env python
    #coding=utf-8
    import socket
    
    #创建socket,指定ipv4,udp类型
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    #绑定端口
    s.bind(('127.0.0.1',8622))
    #绑定端口和TCP一样,但是不需要调用listen()方法,而是直接接收来自任何客户端的数据:
    
    print("绑定端口 8622")
    while True:
        #接收数据
        data,addr = s.recvfrom(1024)
        print(data,"接收来自 %s:%s"% addr)
        data = data.decode('utf-8')
        print(data)
        data = "hello " + data
        print(data)
        data = data.encode('utf-8')
        #print(type(data))
        s.sendto(data, addr)

    UDP,客户端

    #! /usr/bin/env python
    #coding=utf-8
    import socket
    
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    for data in [b'xr1',b'xr2',b'xr3']:
        
        #发送数据
        s.sendto(data, ('127.0.0.1', 8622))
        #接收数据
        print(s.recv(1024).decode('utf-8'))
    s.close()

    结果:

    遇到一些问题,传参数的时候,提醒参数不符合类型

    s.encode(encoding) -> bytes
    b.decode(encoding) -> str
    bytes 就是一堆字节,str 是字符串;你把字符串按某种编码编码之后就成了一堆字节,正确地解码后就成了字符串。

    字符串转成字节的三种方式

    str='zifuchuang'

    第一种 b'zifuchuang'
    第二种bytes('zifuchuang',encoding='utf-8')
    第三种('zifuchuang').encode('utf-8')

  • 相关阅读:
    lightoj1140_数位dp
    lightoj1057_状压dp
    lightoj1068_数位dp
    lightoj1018_状压dp
    lightoj1217_简单dp
    lightoj1119_简单状压dp
    lightoj1037_状压dp
    lightoj1110_LCS并输出
    图论算法----最短路
    poj1182 食物链
  • 原文地址:https://www.cnblogs.com/R-bear/p/7152609.html
Copyright © 2011-2022 走看看