文章目录

  • 基于TCP协议的socket
    • server端
    • client端
      • 尝试启动

基于TCP协议的socket

tcp是基于链接的,必须先启动服务端,然后再启动客户端去链接服务端

server端

# -*- coding: utf-8 -*-
"""
@File    : 191221_基于TCP协议的socket_server端.py
@Time    : 2019/12/21 12:30
@Author  : Dontla
@Email   : sxana@qq.com
@Software: PyCharm
"""
import socketsk = socket.socket()
sk.bind(('127.0.0.1', 8898))  # 把地址绑定到套接字
sk.listen()  # 监听链接
conn, addr = sk.accept()  # 接收客户端链接
ret = conn.recv(1024)  # 接收客户端信息(1024貌似是缓存大小)
print(ret)  # 打印客户端信息
conn.send(b'hi')  # 向客户端发送信息
conn.close()  # 关闭客户端套接字
sk.close()  # 关闭服务器套接字(可选)

client端

# -*- coding: utf-8 -*-
"""
@File    : 191221_基于TCP协议的socket_client端.py
@Time    : 2019/12/21 15:23
@Author  : Dontla
@Email   : sxana@qq.com
@Software: PyCharm
"""
import socketsk = socket.socket()  # 创建客户套接字
sk.connect(('127.0.0.1', 8898))  # 尝试连接服务器
sk.send(b'hello!')
ret = sk.recv(1024)  # 对话(发送/接收)
print(ret)
sk.close()  # 关闭客户套接字
尝试启动

在当前路径下打开两个控制台窗口:

其中一个运行服务端代码,另一个运行客户端代码(注意:要先运行服务端再运行客户端,否则会有像下面一开始的报错)

Traceback (most recent call last):File "191221_基于TCP协议的socket_client端.py", line 12, in <module>sk.connect(('127.0.0.1', 8898))  # 尝试连接服务器
ConnectionRefusedError: [WinError 10061] 由于目标计算机积极拒绝,无法连接。


如果服务端重复启动,会出现如下错误:

只需要在服务端程序中加上这一句就好了:

参考文章:python 网络篇(网络编程)

python 网络编程 套接字的初使用 基于TCP协议的socket相关推荐

  1. python网络编程——套接字名与DNS

    1.主机名与套接字. 主机名. 我们浏览网页时很少直接输入原始IP地址,大多时候都是输入主机名.如:www.baidu.com.当我们输入主机名时,我们的请求并没有直接转到所请求的服务器而是转到了自己 ...

  2. python网络编程/套接字和DNS(验证加进一步应用)

    1.验证课本代码清单 4-1 调用getaddrinfo进行http ping(检查某一个主机是否开启HTTP服务,确定web服务器的状态) 运行结果: 参数: (1)getaddrinfo(host ...

  3. 详细讲解 —— 网络编程套接字(Java EE初阶)

    网络编程套接字 1 认识网络编程套接字 2 UDP 数据报套接字编程 2.1 UPD服务端 2.1 UDP客户端 2.3 结果测试 3 TCP流套接字编程 3.1 TCP服务端 3.2 TCP客户端 ...

  4. 网络编程套接字(四)

    网络编程套接字(四) 文章目录 网络编程套接字(四) 一.实现tcp服务器多用户版本(多进程.多线程.线程池版本) 一.实现tcp服务器多用户版本(多进程.多线程.线程池版本) tcp_process ...

  5. 网络编程套接字(三)

    网络编程套接字(三) 文章目录 网络编程套接字(三) 一.实现简单的Tcp服务器(单用户) 一.实现简单的Tcp服务器(单用户) tcp_socket.hpp #pragma once #includ ...

  6. 网络编程套接字(二)

    网络编程套接字(二) 文章目录 网络编程套接字(二) 一.简单的UDP网络程序 一.简单的UDP网络程序 封装udp_socket #pragma once #include <cstdio&g ...

  7. 网络编程套接字(一)

    网络编程套接字(一) 文章目录 网络编程套接字(一) 一.基础知识 二.sock编程接口 一.基础知识 1. 理解源IP地址和目的IP地址 在IP数据包头部中,有两个IP地址,分别叫源IP地址和目的I ...

  8. 【javaEE】网络编程套接字

    To u&me: 努力经营当下,直至未来明朗 文章目录 前言 一.网络编程(没时间可以跳过) 一)网络编程了解 二)相关基本概念 二.Socket套接字 三.数据报套接字通信(UDP) 写一个 ...

  9. Java网络编程套接字

    文章目录 1.网络编程基础 2.什么是网络编程 3.网络编程中的基本概念 3.1.发送端和接收端 3.2 请求和响应 3.3 客户端和服务端 3.4 常见的客户端服务端模型 4.Socket套接字 4 ...

最新文章

  1. numpy使用[]语法索引二维numpy数组中指定范围数据行的数值内容(accessing rows in numpy array with specific range)
  2. BitcoinABC开发组相信BCH
  3. android自定义属性的使用
  4. Office365-----Skype for business
  5. 多个openstack合并成一个openstack的多个region
  6. 网站改title的后果到底有多惨?
  7. python 模糊匹配ftp文件_使用python实现正则匹配检索远端FTP目录下的文件
  8. android获取指针空间大小_Android进阶:Binder那么弱怎么面大厂?
  9. web中缓存的几种方式
  10. 用C++计算文件的MD5值
  11. 电脑计算机程序员考证
  12. stm32f405rgt6芯片手册
  13. python cls参数_定义类方法中的参数为啥是cls
  14. 跑跑卡丁车rush服务器维护,跑跑卡丁车rush+每日必做事情整理得丰富奖励
  15. Mysql 的ANY_VALUE()函数和 ONLY_FULL_GROUP_BY 模式
  16. 函数6:lambda 表达式
  17. iMazing2023iOS系统设备数据传输与备份工具使用教程
  18. 修改linux xorg端口,修改/etc/X11/xorg.conf 调整分辨率为1024 768
  19. Allegro从ORCAD原理图生成网表后,导入Allegro PCB教程
  20. Windows 批处理(bat) if条件判断语句使用教程

热门文章

  1. 【PM模块】维护处理的控制和报告
  2. 零基础如何学习SAP BI模块
  3. CO-ACT物料分类账
  4. Unmarshalling Error: unexpected element 错误的解决
  5. SAP为企业不同员工带来了什么?
  6. 物料价格分析取未分摊和未分配价格差异
  7. QM模块常见检验分类术语
  8. ABAP日期操作函数
  9. smartforms句柄与以簇的方式存储数据。
  10. 无性别服饰是趋势,但不该只停留在“中性”