【Python3】简单的socket编程demo

分为客户端,和服务端

# 服务端程序
import socket
if __name__ == ‘__main__‘:
    # 1.创建socket(套接字)对象
    serv = socket.socket()
    # 2.绑定地址信息
    host = socket.gethostname()
    port = 12345
    serv.bind((host, port))
    # 3.开启监听
    serv.listen(5)  # 最大的等待序列数,可以等待5个,第6个就被拒绝了,一般默认是5
    print("监听已开启,等待连接。。。。")
    # 4.等待从客户端的连接
    while 1:
        conn, address = serv.accept()  # 返回socket连接对象和客户端地址address,是个元组结构
        print("连接地址:%s"%(str(address[0])))
        msg = "我是service,欢迎访问"
        conn.send(msg.encode(‘utf-8‘))
    serv.close()

其中遇到了一个报错:a bytes-like object is required

解决办法:
解决办法非常的简单,只需要用上python的bytes和str两种类型转换的函数encode()、decode()即可!

str通过encode()方法可以编码为指定的bytes;
反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法;


# 客户端程序
import socket

if __name__ == ‘__main__‘:
    client = socket.socket()
    #1.创建和服务器的连接
    host = socket.gethostname()
    port=12345
    client.connect((host, port))
    # 接收小于 1024 字节的数据
    msg = client.recv(1024)
    client.close()
    print (msg.decode(‘utf-8‘))
然后开启两个终端,可以测试

原文地址:https://www.cnblogs.com/ronyjay/p/12560073.html

时间: 2024-10-10 07:08:20

【Python3】简单的socket编程demo的相关文章

使用libevent进行多线程socket编程demo

最近要对一个用libevent写的C/C++项目进行修改,要改成多线程的,故做了一些学习和研究. libevent是一个用C语言写的开源的一个库.它对socket编程里的epoll/select等功能进行了封装,并且使用了一些设计模式(比如反应堆模式),用事件机制来简化了socket编程.libevent的好处网上有很多,但是初学者往往都看不懂.我打个比方吧,1)假设有N个客户端同时往服务端通过socket写数据,用了libevent之后,你的server程序里就不用再使用epoll或是sele

linux网络编程1 最简单的socket编程

下面是socket编程的服务器端 先看一个图,1 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 #include<unistd.h> //针对系统调用的封装 fork,pipe 各种i/o原语 read write 等 5 6 #include<sys/socket.h> 7 #include<netinet/in.h> //互联网地址族 定义数据结构s

一个简单的Socket通信Demo

都忘了哪里下的了,留个记录 服务器端Demo: Server.java(服务器端运行主程序,直接运行): package cn.wjs; import java.net.InetAddress; import java.net.ServerSocket; import java.net.Socket; public class Server { private static final int port = 9999; private static final int backlog = 100

初次试验最简单的socket编程

因为电脑限制同时为了操作方便,所以在本地的2个不同的工作空间的不同工程下测试: workspace-1: 服务器端代码 ServerSocketTest.java 1 package socket; 2 3 import java.io.BufferedReader; 4 import java.io.InputStream; 5 import java.io.InputStreamReader; 6 import java.io.OutputStream; 7 import java.io.P

Linux Socket编程-(转自吴秦(Tyler))

"一切皆Socket!" 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. --有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信?

Linux Socket编程(不限Linux)

话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信? 2.Socket是什么? 3.so

Python下的socket编程

首先需要说明的一点是:这里并不会记录很深奥的socket编程,只是会分析一个最简单的socket编程聊天室下的几种特殊异常情况的处理,代码如下: 服务端: 1 import socket 2 3 HOST = "" 4 PORT = 8870 5 sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 6 sk.bind((HOST, PORT)) 7 sk.listen(5) 8 while True: 9 print("

SOCKet 编程 简介

“一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: 1.网络中进程之间如何通信? 2.So

转 网络编程学习笔记一:Socket编程

网络编程学习笔记一:Socket编程 “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的.本文的主要内容如下: