在网络编程中用到知识点

网络编程像是通信,通过计算机网络可以是多台计算机连接,位于同一个网络中的计算机在连接和通信时要遵守一定的规则。通信和链接被称为网络通信协议,双方要遵守规则才能完成数据交换,使用最广泛的是TCP/IP协议

一、TCP协议

TCP协议是面向连接的通信协议,就是在传输数据前先发送端和接收端建立逻辑连接,在传输数据,我们可以分为服务器和客户端。连接的创建要经过三次握手,第一次握手,客户端向服务器发出连接请求,等待服务器确认。第二次握手,服务器向客户端返回一个响应,通知客户端收到了连接请求。第三次握手,客户端再次向服务器发送确认消息,确认连接。

二、socket套接字

我们使用套接字来建立服务器和客户端的连接。建立连接我们需要指定本机的IP地址和端口,在这里端口我们可以自己定义,最大的端口是65535,最小的是0,但是有些端口是已经存在的,是不能定义的,比如redis的端口6379和HTTP协议的端口8080之类的都有过,端口只能是唯一。

server_sockket = socket(AF_INET, SOCK_STREAM)

三、阻塞和多线程

我们在建立完套接字之后要等待客户端的连接,在连接的过程中进行了一个循环在循环的过程中到达accept()时,会等到客户端连接,连接之后创建一个子线程用来接待客户端的任务,启动子线称,接待完成之后继续等待链接任务。

在下面的代码中我们使用了死循环,accept()是等待线程,Thread是多线程,里面的target是指定执行客户端的函数。

def main():
    with Sock(AF_INET, SOL_SOCKET) as _sock:
        _sock.bind(('0.0.0.0', 8877))
        _sock.listen(1000)
        print('菜狗服务器等待连接,端口号是:', 8877)
        while True:
            client_conn, client_info = _sock.accept()
            t = Thread(target=resp_response, args=(client_conn, client_info,))
            t.start()
            t.join()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值