import socket

1.创建套接字

sockfd= socket.socket(socket_family = AF_INIT,socket_type=SOCK_STREAM,proto)

功能:创建套接字

参数: socket_family:选择地址族类型 AF_INET

    socket_type: 套接字类型 SOCK_STREAM 流式

              SOCK_DGRAM 数据报

   proto:选择子协议类型  通常为0

返回值:返回套接字对象

2.绑定服务端地址

sockfd.bind(addr)

功能:绑定IP地址

参数:元祖(IP,port)

localhost  可以被本机用 127.0.0.1

127.0.0.1   同上

192.168.205.127  可以被别人用192.168.205.127访问

0.0.0.0   可以被别人用192.168.205.127访问

      也可被自己用 127.0.0.1访问

3.设置监听套接字

sockfd.listen(n)

功能:将套接字设置为监听套接字,创建监听队列。

参数:n表示监听队列大小。

*一个监听套接字可以连接多个客户端套接字。

4.等待处理客户端连接请求

connfd,addr= sockfd,addept()

功能:阻塞等待处理客户端连接。

返回值:connfd 客户端连接套接字

    addr 连接的客户端地址

*阻塞函数:程序运行的过程中遇到阻塞函数则暂停运行,知道某种阻塞条件达成再继续运行。

5.消息收发

connfd.recv(buffersize)

功能:接受对应客户端消息

参数:一次最多接受多少字节

返回值:接收到的内容。

*没有消息则会阻塞。

n = connfd.send(data)

功能:发送消息给对应客户端

参数:要发送的内容,必须是bytes格式。

返回值:返回实际发送消息的大小。

6.关闭套接字

#tcp_server.py
from socket import *
#创建套接字
sockfd = socket(AM_INIT,SOCK_STREAM)
#创建地址
socket.bind((0.0.0.0),8888) #设置监听
sockfd.listen(5) #等待接受链接
print("waiting")
connfd,addr = sockfd,accept()
print('connect from',addr) #收发消息
data = connfd,recv(1024)
print(data)
n = connfd.send(b'receive your message') #关闭套接字
connfd.close()
sockfd.close()

  

5-tcp套接字服务端编程的更多相关文章

  1. 通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题)

    今日作业:通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题) server(服务端) import socket from mult ...

  2. TCP下的套接字服务端实现并发 作业题

    # 服务端 import socket from threading import Thread """ 服务端 1.要有固定的IP和PORT 2.24小时不间断提供服务 ...

  3. DotNet:Socket Server 异步套接字服务端实现

    异步服务器套接字示例 From https://msdn.microsoft.com/zh-cn/library/fx6588te(v=vs.110).aspx 下面的示例程序创建接收来自客户端的连接 ...

  4. windows套接字阻塞模式编程实例

    一.阻塞模式套接字服务端和客户端的运行流程如下: 1.1 服务器运行过程如下: 1.服务器启动后,等待客户端的连接请求.2.当收到客户端的请求后,在界面上显示该客户端的IP地址和端口,以及“Hello ...

  5. 套接字编程相关函数(2:TCP套接字编程相关函数)

    本文摘录自<UNIX网络编程 卷1>. 基本套接字函数 socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型.其定义如下: #in ...

  6. TCP/UDP套接字 java socket编程实例

    网络协议七层结构: 什么是Socket? socket(套接字)是两个程序之间通过双向信道进行数据交换的端,可以理解为接口.使用socket编程也称为网络编程,socket只是接口并不是网络通信协议. ...

  7. UNP学习笔记1——基本TCP套接字编程

    1 套接字地址结构 大多数套接字函数都需要一个指向套接字地址结构的指针作为参数.每个协议族都定义了自己的套接字结构.这些套接字的结构以sockaddr_开头,以每个协议族唯一的后缀名结尾. 1.1 I ...

  8. TCP套接字编程模型及实例

    摘要:     本文讲述了TCP套接字编程模块,包括服务器端的创建套接字.绑定.监听.接受.读/写.终止连接,客户端的创建套接字.连接.读/写.终止连接.先给出实例,进而结合代码分析. PS:本文权当 ...

  9. TCP套接字编程

    一.套接字(socket)函数 图1给出了在一个TCP客户与服务器通信的流程.服务器首先启动,稍后某个客户启动,它试图连接到服务器.假设客户给服务器发送一个请求,服务器处理该请求,并且给客户发回一个相 ...

随机推荐

  1. Python3.x 基础练习题100例(31-40)

    练习31: 题目: 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母. 分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母. 程序 ...

  2. c++类的简介

    一 类的定义 在c++中,我们使用"类"来描述"对象",可以说"类"的实现是c++OOP的核心. 类中包括对象的"属性" ...

  3. Python中OS对目录的操作以及引用

    路径的获取 对当前目录的获取 1 path = os.getcwd() 2 print("获取到的当前目录是:({})".format(path)) 获取当前文件所在的绝对路径 i ...

  4. PowerShell的使用

                一:基于winserver2008版本powershell2.0的升级(至4.0) (1)首先:查看各版本的Powershell版本,如下所示: (2)打开虚拟机winserv ...

  5. 【odoo14】第十五章、网站客户端开发

    odoo的web客户端.后台是员工经常使用的地方.在第九章中,我们了解了如何使用后台提供的各种可能性.本章,我们将了解如何扩展这种可能性.其中web模块包含了我们在使用odoo中的各种交互行为. 本章 ...

  6. C# 获取Word文本高亮和背景(附vb.net代码)

    Word中的文本高亮和背景是通过不同方法来设置的.文本高亮(Text Highlight Color)是通过[字体]中的快速工具栏设置:文本背景(Text Background/Shading)是通过 ...

  7. 内存模型与c++中的memory order

    概 c++的atomic使用总会配合各种各样的memory order进行使用,memory order控制了执行结果在多核中的可见顺序,,这个可见顺序与代码序不一定一致(第一句代码执行完成的结果不一 ...

  8. Balanced Diet Gym - 102220B

    题目链接:https://vjudge.net/problem/Gym-102220B 题意:每组数据 给了 N和M表示有M种类型的糖果,这些糖果一共N个.接下了是 M 组数据,表示如果你选第 i 中 ...

  9. P1603 斯诺登的密码(JAVA语言)

    //这题有点坑 题目背景 根据斯诺登事件出的一道水题 题目描述 题目描述 2013年X月X日,俄罗斯办理了斯诺登的护照,于是他混迹于一架开往委内瑞拉的飞机.但是,这件事情太不周密了,因为FBI的间谍早 ...

  10. JAVA面试核心知识点(一):计算机网络

    一·计算机网络 1.1 网络基础知识 OSI 七层协议(制定标准使用的标准概念框架): 物理层(传递比特流0101)->数据链路层(将比特流转换为逻辑传输线路)->网络层(逻辑编址,分组传 ...