下面是其他相关的终端的创建:

Socket之TCP客户端【Python】
Socket之UDP服务器【Python】
Socket之UDP客户端【Python】

创建TCP服务器
首先,我们先创建一段通用TCP服务器的一般伪代码,然后对这些伪代码进行描述。这仅仅是我们设计网络通信服务器的一种模式,只要熟悉了这种设计模式,我们就可以根据自己的需要修改伪代码来操作服务器了。

sc=socket() #创建服务器的套接字
sc.bind()       #使用套接字绑定地址和端口号
sc.listen() #监听客户端的连接inf_loop:      #服务器无限的循环cs=sc.accept()    #接受客户端的连接comm_loop:     #通讯循环cs.recv()/cs.send()        #通讯对话,接受和发送消息cs.close()      #关闭客户端套接字
sc.close()          #关闭服务器套接字。可选

所有的套接字都是通过使用socket.socket()函数创建的,同时服务器的使用也需要占用一个端口号并等待客户端的请求,所以说服务器也必须绑定到一个本地的地址。又因为TCP是一种面向连接的通信系统,所以在TCP服务器开始操作之前,我们需要安装一些基础的设施。特别地,TCP服务器必须监听客服端传入的连接,等这些所有的准备工作做好后,服务器和客户端之间的通讯就可以开始进入到无线的通信循环之中了。

在调用accept()函数之后,就开启了一个简单的单线程,服务器就会等待客户端的连接。在默认的情况下,accept()是阻塞的,这就意味着执行被暂停,直到一个的新的连接到达。除此之外,套接字也是支持非阻塞模式,在这里,我们不做过多的涉及。

一旦服务器接受了一个新的连接,就会返回(使用accept() 函数)一个独立的客户端套接字,用来和即将到来的信息进行通讯交换。

创建好了临时的套接字,通讯就可以开始了。通过使用这个新的套接字,客户端和服务器就可以开始参与发送和接受的对话之中了,直到连接结束。当一方关闭连接或者对方发送一个空字符时,就会关闭连接。

在代码中,当一个客户端连接关闭之后,服务器就会等待另一个客户端的连接。在伪代码的最后一行是可选的。这里指的是关闭服务器套接字。在真正的开发中不会碰到的,因为服务器必须一直对外提供服务。在这里使用close()方法,是提示我们在设计一个智能 的服务器退出服务时,是一个很好的选择。

接下来创建一个TCP服务器,让它接受来自客户端的消息,返回的时候并加上时间戳的相同消息。

from socket import *
from time import ctime
HOST =' '
PORT =' 2341'
BUFSIZ =1024
ADDR=(HOST,PORT)tcpSerSock=socket(AF_INET,SOCK_STREAM)
tcpSerSock.bind(ADDR)   #绑定IP地址和端口号
tcpSerSock.listen(5)        #监听,使得主动变为被动while True:print('正在等待连接....') tcpCliSock,addr=tcpSerSock.accept()    #当来新的连接时,会产生一个的新的套接字为客户端服务print('收到来自%d的连接.......'%addr)while True:data=tcpCliSock.recv(BUFSIZ)   #接受数据,缓存区设置为1kbif not data:breaktcpCliSock.send('[%s] %s' %(bytes(ctime( ),'utf-8'),data))   #加上时间戳,并对数据编码tcpCliSock.close( )
tcpSerSock.close()

Socket之TCP服务器【Python】相关推荐

  1. python应用系列教程——python使用socket创建tcp服务器和客户端

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python使用socket创建tcp服务器和客户端. 服务器端为一个时间戳服务器,在接收到客户端发来的数据后,自动回复. 客户端,等待用户输 ...

  2. python tcp服务器模板_python socket之tcp服务器与客户端示例

    Python中用socket编写服务器和客户端... 先说下我的问题,本来预想是,客户端连上服务器,然后向服务器发送信息服务器端代码 while 1: buf = s.recv(1024) 改成 wh ...

  3. 使用python基于socket的tcp服务器聊天室

    # coding=utf-8 import socket,threading,time '''代码说明:1.创建一个字典用于接受客户端的用户名和信息2.创建一个类对象client用于编写客户端套接字对 ...

  4. Socket之UDP服务器【Python】

    下面是其他相关的终端的创建: Socket之TCP服务器[Python] Socket之TCP客户端[Python] Socket之UDP客户端[Python] UDP服务器不需要TCP服务器的那么多 ...

  5. Socket之TCP客户端【Python】

    下面是其他相关的终端的创建: Socket之TCP服务器[Python] Socket之UDP服务器[Python] Socket之UDP客户端[Python] 同样的,跟创建TCP服务器一样,我们也 ...

  6. 基于Python Tkiner、thread与socket实现的简单多人聊天室,在Python中创建TCP服务器与客户端进行通信

    基于Python Tkiner.thread与socket实现的简单多人聊天室,在Python中创建TCP服务器与客户端进行通信 完整代码下载地址:基于Python Tkiner.thread与soc ...

  7. python实现syn半扫描_python 使用raw socket进行TCP SYN扫描实例

    1. TCP SYN扫描 端口扫描常用于用于探测服务器或主机开放端口情况,被计算机管理员用于确认安全策略,同时被攻击者用于识别目标主机上的可运作的网络服务.端口扫描是向一定范围的服务器端口发送对应请求 ...

  8. python tcp服务器 多线程_Python中的多线程TCP服务器

    我使用python的threding模块创建了一个简单的多线程tcp服务器.每次连接新客户端时,该服务器都会创建一个新线程. #!/usr/bin/env python import socket, ...

  9. python tcp服务器_Python 创建TCP服务器的方法

    问题 你想实现一个服务器,通过TCP协议和客户端通信. 解决方案 创建一个TCP服务器的一个简单方法是使用 socketserver 库.例如,下面是一个简单的应答服务器: from socketse ...

最新文章

  1. 58同城创始人姚劲波:未来十年是中国创业最好机会
  2. 为mysql cluster添加sql节点
  3. Android之Launcher分析和修改1——Launcher默认界面配置(default_workspace)
  4. maven排除依赖冲突问题
  5. java基础分享_一、java基础教程
  6. twitter.common.concurrent deadline and defer
  7. centOS下安装tomcat详解
  8. 繁忙SQL Server上的查询计划
  9. iOS 代码命名规范 及Android 代码命名规范(2)Android
  10. miui12怎么自定义开机动画_MIUI12一天的体验,像换新机一样,感知超强!
  11. Perl语言程序设计_简介
  12. 互联网协议以及网络分层
  13. java字节码查看器_jclasslib 下载
  14. 常见距离算法-欧氏距离、杰卡德距离、余弦距离
  15. 查询QQ会员账号信息API接口
  16. 华为机密照片!(转载)
  17. html—显示照片(方法一)
  18. 图象恢复——(逆滤波,维纳滤波)
  19. Windows Azure Platform (三)云计算的特点
  20. 2020-11-05 Win10自带虚拟机 Hyper-V使用方法

热门文章

  1. Consumer搭建
  2. Java8函数式编程(4)--collector(收集器)
  3. java中的serializable_java中的Serializable接口的作用
  4. cad中简单流程图制作_想要又快又好的画出世界级的流程图,这样牛掰的方法一定要知道...
  5. pytorch教程龙曲良01-05
  6. Workbooks 对象的 Open 方法参数说明
  7. Vue 2.3、2.4 知识点小结
  8. 二维码类库--phpqrcode使用简介
  9. 一个简单的防爬虫脚本(转载欧彬)
  10. HDU - 5978 To begin or not to begin(简单博弈)