27_网络编程-初识socket
import socket
sk = socket.socket()
sk.bind(('127.0.0.1',8898)) #把地址绑定到套接字
sk.listen() #监听链接
conn,addr = sk.accept() #接受客户端链接
ret = conn.recv(1024) #接收客户端信息
print(ret) #打印客户端信息
conn.send(b'hi') #向客户端发送信息
conn.close() #关闭客户端套接字
sk.close() #关闭服务器套接字(可选)
2、客户端
import socket
sk = socket.socket() # 创建客户套接字
sk.connect(('127.0.0.1',8898)) # 尝试连接服务器
sk.send(b'hello!')
ret = sk.recv(1024) # 对话(发送/接收)
print(ret)
sk.close() # 关闭客户套接字
重启服务端是会出现:OSError:[Errno 48] Address already in use, 解决方案
#加入一条socket配置,重用ip和端口
import socket
from socket import SOL_SOCKET,SO_REUSEADDR
sk = socket.socket()
sk.setsockopt(SOL_SOCKET,SO_REUSEADDR,1) #就是它,在bind前加
sk.bind(('127.0.0.1',8898)) #把地址绑定到套接字
sk.listen() #监听链接
conn,addr = sk.accept() #接受客户端链接
ret = conn.recv(1024) #接收客户端信息
print(ret) #打印客户端信息
conn.send(b'hi') #向客户端发送信息
conn.close() #关闭客户端套接字
sk.close() #关闭服务器套接字(可选)
import socket
from socket import SOL_SOCKET,SO_REUSEADDR
while 1:
server = socket.socket() # 创建服务器对象
server.setsockopt(SOL_SOCKET,SO_REUSEADDR,1)
ip_port = ('192.168.15.202',8001) # 设置服务器段ip port
server.bind(ip_port) # 绑定ip port
server.listen(3) # 监听ip,端口,看看监听谁来访问我;参数是设置允许最多10个客户端来访问我。源码默认128一分组,不限制
print('等待连接...')
conn, address = server.accept() # 阻塞在这里,等待客户端的链接 , conn 是服务器与客户端的链接通道,后面接收/发送都需要使用此变量
print('连接成功!') while 1 : from_client_msg = conn.recv(1024) # 接收客户端的消息,设置接收数据大小,单位是字节
print(from_client_msg.decode('utf-8')) # 接收的是bytes类型的,需要解码
if from_client_msg.decode('utf-8') == 'close':
break
msg = input('请返回数据>>>')
conn.send(msg.encode('utf-8')) # 向客户端发送消息bytes类型,需编码
客户端
import socket
client = socket.socket()
from_server_port = ('192.168.15.202',8001) # 设置需要访问的服务器端ip port client.connect(from_server_port) # 去链接服务器端ip port
while 1:
msg = input('>>>')
client.send(msg.encode('utf-8')) # 向服务器端发送信息,需编码
if msg == 'close':
break
content_server = client.recv(1024) # 接收服务器发过来的消息
print(content_server.decode('utf-8')) # 将接收的消息进行解码
client.close()
27_网络编程-初识socket的更多相关文章
- Python之路 - 网络编程初识
Python之路 - 网络编程初识 前言
- java基础-网络编程(Socket)技术选型入门之NIO技术
java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...
- python 网络编程:socket(二)
上节地址:Python网络编程:socket 一.send和sendall区别 send,sendall ret = send('safagsgdsegsdgew') #send 发送 ...
- Linux高并发网络编程开发——10-Linux系统编程-第10天(网络编程基础-socket)
在学习Linux高并发网络编程开发总结了笔记,并分享出来.有问题请及时联系博主:Alliswell_WP,转载请注明出处. 10-Linux系统编程-第10天(网络编程基础-socket) 在学习Li ...
- 网络编程与socket套接字
网络编程与socket套接字 传输层 PORT协议 port是一种接口,数据通过它在计算机和其他设备(比如打印机,鼠标,键盘或监视器)之间,网络之间和其他直接连接的计算机之间传递 TCP协议 传输 ...
- 网络编程初识和socket套接字
网络的产生 不同机器上的程序要通信,才产生了网络:凡是涉及到倆个程序之间通讯的都需要用到网络 软件开发架构 软件开发架构的类型:应用类.web类 应用类:qq.微信.网盘.优酷这一类是属于需要安装的桌 ...
- linux网络编程-(socket套接字编程UDP传输)
今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中, ...
- 浅谈TCP/IP网络编程中socket的行为
我认为,想要熟练掌握Linux下的TCP/IP网络编程,至少有三个层面的知识需要熟悉: 1. TCP/IP协议(如连接的建立和终止.重传和确认.滑动窗口和拥塞控制等等) 2. Socket I/O系统 ...
- iOS 网络编程:socket
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...
随机推荐
- 【转】四、可空类型Nullable<T>到底是什么鬼
[转]四.可空类型Nullable<T>到底是什么鬼 值类型为什么不可以为空 首先我们都知道引用类型默认值都是null,而值类型的默认值都有非null. 为什么引用类型可以为空?因为引用类 ...
- ServiceDesk Plus 服务管理自动指派工单功能
- 02.制作一个自己的 Java 编辑器
难度中等,适合 Java 基础扎实,对 Java 核心 API 有所熟悉的同学学习 No1.制作GUI界面 一.实验介绍 1.1 实验内容 本节课程的主要内容是准备开发环境,建立项目并完成 GUI 界 ...
- Codeforces Round #513 by Barcelona Bootcamp C. Maximum Subrectangle(双指针+思维)
https://codeforces.com/contest/1060/problem/C 题意 给两个数组,a数组有n个元素,b数组有m个元素,两个数组元素互相相乘形成n*m的矩阵,找一个子矩阵,元 ...
- 常用.bat
休眠.bat rundll32 powrprof.dll,SetSuspendState 常用.bat start /d "d:\Program Files (x86)\Tencent\T ...
- IE与非IE window.onload调用
IEwin.attachEvent('onload', function(){ });非IEwin.onload=function(){}; if(navigator.appName == " ...
- 如何在CentOS7上安装Python3及对应问题
首先一般来说安装好的CentOS是会自带python2.7,但是是没有安装python3的环境的 [root@host bin]# pwd /usr/bin [root@host bin]# ls p ...
- 微信小程序两种滑动方式
竖向滑动: <scroll-view scroll-y="true" style="height: 200rpx;"> <view style ...
- PHP上传文件参考配置大文件上传
PHP用超级全局变量数组$_FILES来记录文件上传相关信息的. 1.file_uploads=on/off 是否允许通过http方式上传文件 2.max_execution_time=30 允许脚本 ...
- 如何批量下载网站中的超链接(一次性下载网页中所有可能的PDF文件)
最近公司在做工程项目,实现文件批量下载. 网上找了很久,发现网上的代码都有相似的问题,不过最终还是让我找到了一个符合的项目. 工程: 进行项目文件下载功能分析,弄清楚文件批量下载的原理,提供的数据支持 ...