最简单的socket编程

客户端:

import socket

client = socket.socket()#实例化出一个叫client的对象
client.connect(("localhost", 6969))#设置连接服务器的ip地址和端口
client.send(b"hello world")#只能send二进制的字符串,如果要传中文字符则编码成asic写成client.send("今天".encode("utf-8"))
data = client.recv(1024)#设置接收的字符串大小,单位为字节
print("recv:", data)
client.close()#关闭客户端

服务端:

import socket

server = socket.socket()#实例化一个服务端server
server.bind(("localhost", 6969))#绑定ip地址和端口
server.listen()#开始监听
print("开始等电话")
conn, addr = server.accept()#conn就是从客户端过来在服务端建立的一个连接实例
print(conn, addr)
print("电话来了")
data = conn.recv(1024)
print("recv", data)#若data里是中文字符串,则解码成utf-8的形式
conn.send(data.upper())
server.close()#服务端关闭

在pycharm打开这两个py文件时会报错10061代码

这是因为

Python Socket编程 [WinError 10061] 由于目标计算机积极拒绝,无法连接。

写python socket程序的时候,难免会遇到’ [WinError 10061] 由于目标计算机积极拒绝,无法连接。’这样的错误,出现这样的错误,有可能防火墙的防护,

在python的IDLE运行客户端和服务器的代码,出现这样的错误,是因为它们公用了同一个进程。

解决方案如下:

1、打开一个IDLE,运行服务器代码。

2、再打开一个IDLE,运行客户端代码。(注意:是重新打开一个IDLE窗口,而不是在第一步的IDLE窗口open打开)

这样就可以运行两个进程,进程间进行通信。因为定义是这样的:socket是同一计算机的进程间或者不同计算机之间的通信。

照这样就能解决问题

最后client显示接收到:


server接收到的:



猜你喜欢

转载自blog.csdn.net/u014248032/article/details/80840858
今日推荐