python网络编程总结

python网络编程总结

1.socket简介

TCP是基于链接的,必须先启动服务器,然后再启动客户端去链接服务端

服务端

import socket
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#买手机
phone.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) #可以多次启动
#执行多次的时候会报错,那么怎么办呢、?就在绑卡前面加上上面那句setsockopt方法就ok了
phone.bind(('192.168.20.44',8080))#绑定手机卡(ip,端口)
# 端口号在1024以前的是系统用的,1024以后的都是你自己写的程序去定义的端口

print('starting run......')
phone.listen(5) #开机   5代表的是最多挂起5个,也可以好多个
while True: #链接循环
    coon,client_addr=phone.accept()#等待接电话,(coon是建立的链接,客户端的ip和端口号组成的元组)
    print(coon,client_addr)

    #收发消息
    while True:  #通信循环
        try:  #如果不加try...except ,就会报错,因为它不知道你什么时候断开链接的,服务器还以为你在运行
            data = coon.recv(1024) #收了1024个字节的消息
            print('client data 收到消息:%s'%data.decode('utf-8'))
            coon.send(data.upper())  #发消息
        except Exception:  #因为你不知道客户端什么时候断开链接,
            break
    coon.close() #挂电话
phone.close() #关机


# 处理逻辑错误的两种方式:
    # if 判断
    # try...except 异常处理
# 异常处理
# 当你知道直接错误的条件时就用if判断了
# 当程序错误一定发生,但是你又预知不了它出错的条件是什么的时候,就用try...except

服务端

猜你喜欢

转载自www.cnblogs.com/lzf23/p/11564002.html
今日推荐