3.网络编程-tcp的服务器简单实现

Posted ADChen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.网络编程-tcp的服务器简单实现相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2019/1/13 22:03
# @Author  : ChenAdong
# @email   : [email protected]


# 实现tcp服务器轮流向多个客户端服务(同时只有一个客户端接受服务)

import socket

def tcp_server():
   # 创建套接字
   socket_serve = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
   
   # 绑定端口,一般ip地址不绑定,直接给空值;并且地址是元组形式
   socket_serve.bind((" ", 8081))
   
   # 监听端口
   socket_serve.listen(3)
   
   while True:
      new_socket, client_addr = socket_serve.accept()
      # 阻塞,直到有客户端连接,多个用户连接时候,组成一个列表,下面再逐个拿出每个用户地址,创建新的套接字,进行通信
      while True:
         recv_data = new_socket.recv(1024)
         # 如果客户端关闭,会自动发送空值给服务器,可以用这个判断客户端关闭;这里当客户端关闭时候,服务器也关闭套接字
         # 无法直接发送一个空值
         if recv_data:
            new_socket.send("hello".encode("utf-8"))
         else:
            break
      new_socket.close()


if __name__ == "__main__":
   tcp_server()

  

以上是关于3.网络编程-tcp的服务器简单实现的主要内容,如果未能解决你的问题,请参考以下文章

go实现简单的tcp编程

网络编程套接字

Linux:UDP Socket编程(代码实战)

Linux:UDP Socket编程(代码实战)

阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第2节 TCP协议_3_TCP通信的客户端代码实现

代码片段 - Golang 实现简单的 Web 服务器