python 网络编程 套接字的初使用 基于TCP协议的socket
文章目录
- 基于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相关推荐
- python网络编程——套接字名与DNS
1.主机名与套接字. 主机名. 我们浏览网页时很少直接输入原始IP地址,大多时候都是输入主机名.如:www.baidu.com.当我们输入主机名时,我们的请求并没有直接转到所请求的服务器而是转到了自己 ...
- python网络编程/套接字和DNS(验证加进一步应用)
1.验证课本代码清单 4-1 调用getaddrinfo进行http ping(检查某一个主机是否开启HTTP服务,确定web服务器的状态) 运行结果: 参数: (1)getaddrinfo(host ...
- 详细讲解 —— 网络编程套接字(Java EE初阶)
网络编程套接字 1 认识网络编程套接字 2 UDP 数据报套接字编程 2.1 UPD服务端 2.1 UDP客户端 2.3 结果测试 3 TCP流套接字编程 3.1 TCP服务端 3.2 TCP客户端 ...
- 网络编程套接字(四)
网络编程套接字(四) 文章目录 网络编程套接字(四) 一.实现tcp服务器多用户版本(多进程.多线程.线程池版本) 一.实现tcp服务器多用户版本(多进程.多线程.线程池版本) tcp_process ...
- 网络编程套接字(三)
网络编程套接字(三) 文章目录 网络编程套接字(三) 一.实现简单的Tcp服务器(单用户) 一.实现简单的Tcp服务器(单用户) tcp_socket.hpp #pragma once #includ ...
- 网络编程套接字(二)
网络编程套接字(二) 文章目录 网络编程套接字(二) 一.简单的UDP网络程序 一.简单的UDP网络程序 封装udp_socket #pragma once #include <cstdio&g ...
- 网络编程套接字(一)
网络编程套接字(一) 文章目录 网络编程套接字(一) 一.基础知识 二.sock编程接口 一.基础知识 1. 理解源IP地址和目的IP地址 在IP数据包头部中,有两个IP地址,分别叫源IP地址和目的I ...
- 【javaEE】网络编程套接字
To u&me: 努力经营当下,直至未来明朗 文章目录 前言 一.网络编程(没时间可以跳过) 一)网络编程了解 二)相关基本概念 二.Socket套接字 三.数据报套接字通信(UDP) 写一个 ...
- Java网络编程套接字
文章目录 1.网络编程基础 2.什么是网络编程 3.网络编程中的基本概念 3.1.发送端和接收端 3.2 请求和响应 3.3 客户端和服务端 3.4 常见的客户端服务端模型 4.Socket套接字 4 ...
最新文章
- numpy使用[]语法索引二维numpy数组中指定范围数据行的数值内容(accessing rows in numpy array with specific range)
- BitcoinABC开发组相信BCH
- android自定义属性的使用
- Office365-----Skype for business
- 多个openstack合并成一个openstack的多个region
- 网站改title的后果到底有多惨?
- python 模糊匹配ftp文件_使用python实现正则匹配检索远端FTP目录下的文件
- android获取指针空间大小_Android进阶:Binder那么弱怎么面大厂?
- web中缓存的几种方式
- 用C++计算文件的MD5值
- 电脑计算机程序员考证
- stm32f405rgt6芯片手册
- python cls参数_定义类方法中的参数为啥是cls
- 跑跑卡丁车rush服务器维护,跑跑卡丁车rush+每日必做事情整理得丰富奖励
- Mysql 的ANY_VALUE()函数和 ONLY_FULL_GROUP_BY 模式
- 函数6:lambda 表达式
- iMazing2023iOS系统设备数据传输与备份工具使用教程
- 修改linux xorg端口,修改/etc/X11/xorg.conf 调整分辨率为1024 768
- Allegro从ORCAD原理图生成网表后,导入Allegro PCB教程
- Windows 批处理(bat) if条件判断语句使用教程