5-tcp套接字服务端编程
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套接字服务端编程的更多相关文章
- 通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题)
今日作业:通过开启子进程的方式实现套接字服务端可以并发的处理多个链接以及通讯循环(用到了subprocess模块,解决粘包问题) server(服务端) import socket from mult ...
- TCP下的套接字服务端实现并发 作业题
# 服务端 import socket from threading import Thread """ 服务端 1.要有固定的IP和PORT 2.24小时不间断提供服务 ...
- DotNet:Socket Server 异步套接字服务端实现
异步服务器套接字示例 From https://msdn.microsoft.com/zh-cn/library/fx6588te(v=vs.110).aspx 下面的示例程序创建接收来自客户端的连接 ...
- windows套接字阻塞模式编程实例
一.阻塞模式套接字服务端和客户端的运行流程如下: 1.1 服务器运行过程如下: 1.服务器启动后,等待客户端的连接请求.2.当收到客户端的请求后,在界面上显示该客户端的IP地址和端口,以及“Hello ...
- 套接字编程相关函数(2:TCP套接字编程相关函数)
本文摘录自<UNIX网络编程 卷1>. 基本套接字函数 socket函数 为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定期望的通信协议类型.其定义如下: #in ...
- TCP/UDP套接字 java socket编程实例
网络协议七层结构: 什么是Socket? socket(套接字)是两个程序之间通过双向信道进行数据交换的端,可以理解为接口.使用socket编程也称为网络编程,socket只是接口并不是网络通信协议. ...
- UNP学习笔记1——基本TCP套接字编程
1 套接字地址结构 大多数套接字函数都需要一个指向套接字地址结构的指针作为参数.每个协议族都定义了自己的套接字结构.这些套接字的结构以sockaddr_开头,以每个协议族唯一的后缀名结尾. 1.1 I ...
- TCP套接字编程模型及实例
摘要: 本文讲述了TCP套接字编程模块,包括服务器端的创建套接字.绑定.监听.接受.读/写.终止连接,客户端的创建套接字.连接.读/写.终止连接.先给出实例,进而结合代码分析. PS:本文权当 ...
- TCP套接字编程
一.套接字(socket)函数 图1给出了在一个TCP客户与服务器通信的流程.服务器首先启动,稍后某个客户启动,它试图连接到服务器.假设客户给服务器发送一个请求,服务器处理该请求,并且给客户发回一个相 ...
随机推荐
- 后端程序员之路 54、go 日志库
一个朋友写的日志库 https://github.com/vizee/echo go get -u -v github.com/vizee/echo package main import ( ...
- MySQL注入与informantion_schema库
目录 只可读 自动开启 和MySQL注入有关的3个表 手动注入的使用案例 表介绍 查询一个表中全部字段的过程 MySQL V5.0安装完成会默认会生成一个库(informantion_schema), ...
- PVE连接Wi-Fi
连接wifi参考文章: https://lzxz1234.cn/archives/417 services看不全信息 connmanctl> services 之后信息太多,看不到上面的怎么办? ...
- React函数式组件和类组件[Dan]
一篇对Dan的 How Are Function Components Different from Classes? 一文的个人阅读总结,内容来自于此.强烈推荐阅读 Dan Abramov.的博客. ...
- iot漏洞入门
路由器漏洞入门 下载项目https://github.com/praetorian-inc/DVRF 安装quem sudo apt install qemu-user-static 安装gdb-mu ...
- 前端知识-CS-01
一.选择器 通过什么方式来定位 1.sytle标签 style标签功能:写css样式的sytle标签的几种写法:1.可以在head里面添加一个style标签 2.在head标签中 通过link标签,引 ...
- 2、MyBatis教程之第一个MyBatis程序
3.MyBatis第一个程序 1.搭建实验数据库 CREATE DATABASE `mybatis`; USE `mybatis`; DROP TABLE IF EXISTS `user`; CREA ...
- ssh 免登录配置
引子 近日海淘了一个 mini-PC:Gigabyte GB-BSRE-1605,此设备虽采用 amd 嵌入式低功耗处理器,性能相比现在自己所用的设备却有不小提升,加上先前升级电脑多余一些 ssd 和 ...
- 实验一 Python程序设计入门
学号20184307 2019-2020-2 <Python程序设计>实验1报告 课程:<Python程序设计> 班级: 1843 姓名: 章森洋 学号:20184307 实验 ...
- 前端使用bcrypt对密码加密,服务器对密码进行校验
以前为了防止前端密码安全问题,都是对密码进行md5(password + salt). 有些也会用别的加密方式,但还是会存在撞库,彩虹表等破解常规密码. 因此使用bcrypt加密是一个不错的选择,因为 ...