最简单的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接收到的:



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值