python网络编程

1 创建TCP服务器

import socket


if __name__ == '__main__':
    print('~~主线程开始~~')
    host = "127.0.0.1"
    port = 8080
    web=socket.socket()
    web.bind((host,port))
    web.listen(5)
    print("服务器等待客户链接")
    while True:
        conn,addr=web.accept()        #如果建立客户端链接,进行下一步,如果未建立链接,在此行代码等待
        data=conn.recv(1024)         #获取客户端请求数据
        print(data)
        conn.sendall(b'HTTP/1.1 200 OK\r\n\r\nHello Word')    #向客户端发送数据
        print("链接成功")
        conn.close()
    print('~~主线程结束~~')

运行结果:

~~主线程开始~~
服务器等待客户链接
b'GET / HTTP/1.1\r\nHost: 127.0.0.1:8080\r\nConnection: keep-alive\r\nCache-Control: max-age=0\r\nUpgrade-Insecure-Requests: 1\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n'
链接成功
b'GET /favicon.ico HTTP/1.1\r\nHost: 127.0.0.1:8080\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nReferer: http://127.0.0.1:8080/\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: zh-CN,zh;q=0.9\r\n\r\n'
链接成功
b''
链接成功

2 创建TCP客户端

和上例中的服务器配合可以实现。

import  socket

if __name__ == '__main__':
    s=socket.socket()
    host="127.0.0.1"
    port=8080
    s.connect((host,port))
    send_data=input("请输入要发送的数据:")
    s.send(send_data.encode())
    #接收数据最大接收1024个字节
    receData=s.recv(1024).decode()
    print("收到的数据为:%s"%receData)
    s.close()

和上例中的服务器配合可以实现。输入发送数据,可以得到如下结果:
客户端:

  请输入要发送的数据:hello boy
收到的数据为:HTTP/1.1 200 OK

Hello Word

Process finished with exit code 0

服务器:

~~主线程开始~~
服务器等待客户链接
b'hello boy'
链接成功

3 创建UDP服务器

import  socket
if __name__ == '__main__':
    s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)  #创建UDP套字段
    s.bind(("127.0.0.1",8888))
    print("绑定UDP到8888客户端")
    data,addr=s.recvfrom(1024)
    data=float(data)*1.8+32
    sentd_data="转换后的温度:"+str(data)
    print("received from %s:%s"%addr)
    s.sendto(sentd_data.encode(),addr)   #发送给客户端
    s.close()

4 创建UDP客户端

import  socket

if __name__ == '__main__':
    s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)  #创建UDP套字段
    data = input("请输入需要转换的温度")
    s.sendto(data.encode(), ('127.0.0.1',8888))
    print(s.recv(1024).decode())
    s.close()

客户端执行结果

请输入需要转换的温度 20
转换后的温度:68.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值