网络编程-----socket函数

2023-11-03

1.Socket()函数:
访问底层操作系统接口的全部方法,提供服务中心类,简化网络服务器的开发;
语法:socket.socket(family([,type,proto]]])
family: 套接字家族可以是 AF_UNIX 或者 AF_INET
type: 套接字类型可以根据是面向连接的还是非连接分为SOCK_STREAM或SOCK_DGRAM
protocol: 一般不填默认为0.
2.实操用语(内置)方法:
服务端:
s.bind():绑定服务端ip地址码,编制端口;
s.listen():规定可链接数量,与服务器要链接的客户端是多少个;
s.accept():开启链接口,等待客户端的链接;
客户端:
s.connect():输入服务端的IP地址及服务端口,如果连接出错,返回socket.error错误;
s.connect_ex():是connect的扩展,出错时只返回错码,不会出异常;
公调用函数:
s.revc():规定一次接收tcp数据(字节)大少;
s.send():发送TCP数据(字节)对方(相互通讯};
s.sedall():完整地发送完一段TCP数据(字节),
3.实例:

#创建服务端:
import socket                                       #调用内部模块
import sys                                          #调用内部模块
server = socket.socket()
while 1:
    server.bind((socket.gethostname(),8899))        #服务端本身ip地址,设计服务端端口
    server.listen(5)                                #可以接受链接的端口
    print('已经链接客户端')
    conn ,addr = server.accept()
    print(conn,addr)                                #获取客户端的地址信息
    while 1:
        try:
	        data = conn.recv(1024)                      #获取数据时,一次接收信息字节的大小
	        print(data.decode('gbk'))
	        Tk = input('答复:')
	        if data.decode('gbk').upper() == 'Q':
	
	            conn.close()                            #与链接客户端断开
	            break
	        elif Tk.upper() == 'Q':
	            conn.send(b'stop')                      # 服务端回复客户端信息
	            conn.close()
	        else:
	            conn.send(Tk.encode('gbk'))
	        server.close()                             #关闭服务端端口
	        
         except  Exception as e:
        	break
#客户端:

import socket
import sys
clinet = socket.socket()
clinet.connect_ex((socket.gethostname(),8899))
while True:
    connent = input('请输入信息:')
    clinet.send(connent.encode('gbk'))
    if connent.upper() == 'Q':
        clinet.send(connent.encode('gbk'))
        clinet.close()
        break
    else:
        data = clinet.recv(1024)
        print(data.decode('gbk'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络编程-----socket函数 的相关文章

  • 如何删除django中级联的一对一相关模型?

    背景 我在 Django 1 8 5 中定义了以下模型 class PublishInfo models Model pass class Book models Model info models OneToOneField Publis
  • Python 中的字节数组

    如何在 Python 中表示字节数组 如 Java 中的 byte 我需要用 gevent 通过网络发送它 byte key 0x13 0x00 0x00 0x00 0x08 0x00 在Python 3中 我们使用bytes对象 也称为s
  • 即使页面未完全加载,我们也可以使用 Selenium 获取页面源吗(TimeoutException: Message: timeout)?

    即使遇到 TimeoutException Message timeout 也能获取页面源码吗 当我调用 driver page source 时 有时无法加载整页 但我只需要它的部分信息 尚未确定 所以我只想在任何情况下保存页面 是否可以
  • Python 2.7 将比特币私钥转换为 WIF 私钥

    作为一名编码新手 我刚刚完成了教程 教程是这样的 https www youtube com watch v tX XokHf nI https www youtube com watch v tX XokHf nI 我想用 1 个易于阅读
  • boto3 资源(例如 DynamoDB.Table)的类型注释

    The boto3库提供了几种返回资源的工厂方法 例如 dynamo boto3 resource dynamodb Table os environ DYNAMODB TABLE 我想注释这些资源 以便我可以获得更好的类型检查和完成 但我
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 在 macOS 中通过 Python 访问进程的压缩 RAM(顶部的 CMPRS)的方法?

    我试图弄清楚如何从 Python 访问任何给定进程占用的实际 RAM 量 我发现 psutil Process PID memory info rss 工作得很好 直到操作系统决定开始压缩某些进程的 RAM 然后 所有的 memory in
  • 更改 Altair 中的构面标题位置?

    如何将方面标题 在本例中为年份 移动到每个图的上方 默认值似乎位于图表的一侧 这可以轻易改变吗 import altair as alt from vega datasets import data df data seattle weat
  • python是带有字符串的运算符行为[重复]

    这个问题在这里已经有答案了 我无法理解以下行为 我正在创建 2 个字符串 并使用 is 运算符来比较它 对于第一种情况 它的工作方式有所不同 对于第二种情况 它按预期工作 当我使用逗号或空格时 它显示是什么原因False与比较is当没有使用
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • 动态 __init_subclass__ 方法的参数绑定

    我正在尝试让类装饰器工作 装饰器会添加一个 init subclass 方法到它所应用的类 但是 当该方法动态添加到类中时 第一个参数不会绑定到子类对象 为什么会发生这种情况 举个例子 这是可行的 下面的静态代码是我试图最终得到的示例 cl
  • 如何使用 sys.path.append 在 Python 中导入文件?

    我的桌面上有两个目录 DIR1 and DIR2其中包含以下文件 DIR1 file1 py DIR2 file2 py myfile txt 这些文件包含以下内容 file1 py import sys sys path append s
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • 将文本注释到轴并对齐为圆

    我正在尝试在轴上绘制文本并将该文本与圆对齐 更准确地说 有一些具有不同坐标 x y 的点位于该圆内 并使用以下命令创建 ax scatter x y s 100 我想用圆圈连接并标记每个点 Cnameb 文本的坐标由 xp yp 定义 因此
  • 在 Sphinx 中,有没有办法在声明参数的同时记录参数?

    我更喜欢在声明参数的同一行记录每个参数 根据需要 以便应用D R Y http en wikipedia org wiki Don t repeat yourself 如果我有这样的代码 def foo flab nickers a ser
  • 无法在 python 3.8 上将带有 webapp 的 python 部署到 azure

    我正在尝试使用部署一个测试项目Flask使用以下方法将框架迁移到 Azure 云中Azure CLI https learn microsoft com en us azure app service containers quicksta
  • Python 通过从现有 csv 文件中过滤选定的行来写入新的 csv 文件

    只是一个问题 我试图将 csv 文件中的选定行写入新的 csv 文件 但出现错误 我试图读取的 test csv 文件是这样的 两列 2013 9 1 2013 10 2 2013 11 3 2013 12 4 2014 1 5 2014
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 长/宽数据到宽/长

    我有一个数据框 如下所示 import pandas as pd d decil 1 decil 1 decil 2 decil 2 decil 3 decil 3 decil kommune AA BB AA BB AA BB 2010

随机推荐

  • 如何解决MySQL主从复制延时问题

    大家好 我是楼仔呀 欢迎大家到我的知识星球 技术派 一起学习 一起进步 这篇文章是去年写的 但是阅读量很低 不想让好的文章被埋没 重新整理后 可读性更强 文末有上周六技术派直播视频 MySQL 主从一直是面试常客 里面的知识点虽然基础 但是
  • Unity安装VScode

    https code visualstudio com 下载好 之后 打开unity edit preference external tools open by file extension 点开 Browse 然后选 你VSCode e
  • docker 配置本地仓库才能拉取仓库镜像&目录挂载

    一 编辑daemon vim etc docker daemon json insecure registries 192 168 160 70 5000 重启docker服务 systemctl restart docker servic
  • SVN更新文件 有时候会报skipped, remains conficted

    有时进行SVN更新文件时 会报skipped remains conficted 如下图 遇到这种问题时 三大步可以解决问题 步骤如下 Step1 回退到该文件的上一级目录 右键选择TortoiseSVN 然后选择下级菜单中的Clean u
  • 使用C++实现的仿Wallpaper动态壁纸软件(含源文件)

    在上一篇博客中 已经介绍了wallpaper的实现原理 并用C 实现 本文将使用C 和Qt框架实现 由于之前已经介绍过具体思路 本文将跳过分析过程 直接上代码 新建Qt项目 系统自动生成widget h widget cpp main cp
  • 责任链模式(Chain)

    前言 责任链模式在很多框架中都有体现 比如Spring Mybatis等 概念 使多个对象都有处理请求的机会 从而避免了请求的发送者和接收者之间的耦合关系 将这些对象串成一条链 并沿着这条链一直传递该请求 直到有对象处理它为止 责任链模式的
  • 前端常用代码

    ajax请求demo KaTeX parse error Expected got EOF at end of input son url ctx camera capture getListJson action capture came
  • lightGBM专题2:基于pyspark在spark平台下lightgbm训练详解

    数据集 这里以数据集flight weather csv为例 文件下载地址 flight weather csv 将flight weather csv上传到hdfs 这里上传到目录 home 必须在hdfs下读取指定目录的文件 数据读取
  • 服务器虚拟多主机,服务器虚拟多台主机

    服务器虚拟多台主机 内容精选 换一换 主机迁移服务是一种P2V V2V迁移服务 可以帮您把X86物理服务器或者私有云 公有云平台上的虚拟机迁移到华为云弹性云服务器上 从而帮助您轻松地把服务器上的应用和数据迁移到华为云 特点 界面化操作 简单
  • linux命令整理

    pwd 在两个不同目录下使用此命令 ls 长格式 短格式 多个短格式组合使用 cd 上一级目录 下一级目录 相对路径使用 绝对路径使用 特殊符号使用 less more 注意找区别 less的作用与more十分相似 不同点为less命令允许
  • linux下生成静态库.a与动态库.o的方法流程

    比如我们随便从github下载一个zlib的开源库 作者都是告诉了我们这个库的使用方法 并写好了MakeLists txt了 所以直接 先建立一个build文件夹 用来存放生成的编译文件 gt 接着cmake gt 再make 编译后得到了
  • vmware VSAN 双节点部署

    一 环境 ESxi主机 01 192 168 2 26 ESxi主机 02 192 168 2 27 见证主机 虚拟机 192 168 2 157 部署在ESxi 主机01上 注 此操作官方不推荐 192 168 2 26虚拟交换机配置如下
  • Python中default()函数

    阅读textual inversion代码的时候 遇到这样一个用法 def p losses self x start t noise None noise default noise lambda torch randn like x s
  • 【python】运行/调用/执行/终止/重启.exe文件

    一 运行 调用 执行 打开 exe文件 1 os system cmd command 使用 import os os system cmd command 括号里输入的参数即为在cmd里面输入的内容 具体格式参照这个连接 python中o
  • UE5实现距离测量功能

    文章目录 1 实现目标 2 实现过程 2 1 Widget 2 2 蓝图实现 3 参考资料 1 实现目标 UE5在Runtime环境下测量两个空间点位之间的绝对距离 并支持多段线的距离测量 GIF动图如下所示 2 实现过程 实现原理比较简单
  • Django新增自定义模板函数

    Django新增自定义模板函数 1 创建templatetags文件 2 创建一个 py文件 coding utf 8 from django import template register名称不可改 register template
  • 【数据结构与算法】3、虚拟头节点、动态数组的缩容、动态数组和单链表的复杂度、数组的随机访问

    目录 一 虚拟头节点 二 数组的随机访问 三 动态数组 链表复杂度分析 四 动态数组 add E element 复杂度分析 五 动态数组的缩容 一 虚拟头节点 为了让代码更加精简 统一所有节点的处理逻辑 可以在最前面增加一个虚拟的头节点
  • mybatis-plus设置主键自增 ,获取自增主键id

    第一步 实体类加注解 在主键上加 TableId type IdType AUTO 注解 第二步 在数据库设置主键自增 第二种 可以在mapper插入标签中添加keyProperty id useGeneratedKeys true
  • Courses

    点击打开链接 Problem Description Consider a group of N students and P courses Each student visits zero one or more than one co
  • 网络编程-----socket函数

    1 Socket 函数 访问底层操作系统接口的全部方法 提供服务中心类 简化网络服务器的开发 语法 socket socket family type proto family 套接字家族可以是 AF UNIX 或者 AF INET typ