Python中套接字实现服务端和客户端3-3

3 创建客户端的步骤

创建客户端的步骤如图5所示。

图5 创建客户端的步骤

从图5可以看出,对于客户端来说,首先创建套接字,之后通过创建的套接字去连接服务端,如果连接成功,则继续通过该套接字向服务端发送数据,最后关闭套接字。

3.1 创建套接字

客户端创建套接字的方法与服务端相同,代码如下所示。

s = socket.socket()

3.2 连接服务端

通过connect()方法连接服务端,该方法的格式如下所示。

socket.connect(address)

其中,参数address是服务器的信息,包括IP地址和端口号。连接服务器的代码如下所示。

SERVER = '192.168.147.128'
PORT = 12345

s.connect((SERVER, PORT))

其中,SERVER表示服务器的IP地址,PORT表示服务器监听的端口号,最后将这两个变量组合成元组作为connect()方法的参数。如果不能成功连接服务器,connect()方法会间隔一段时间后再次尝试连接,此时代码会阻塞等待connect()的再次尝试,当尝试了一定次数后仍无法连接服务器,则connect()方法会抛出TimeoutError,即连接超时异常。如果成功连接了服务端,则代码会继续向下运行。

3.3 发送数据

成功连接了服务端之后,通过sendall()方法向服务端发送数据。该方法的格式如下所示。

socket.sendall(bytes[, flags])

其中,第一个参数bytes表示要发送的数据,该数据必须是字节类型;第二个参数flags是可选参数,表示指定了发送数据时的方式,默认值是0。通过sendall()方法发送数据的代码如下所示。

s.sendall(b'Hello Server!')

3.4 关闭套接字

在发送完数据之后,可以通过close()方法关闭套接字。

4 完整代码

4.1 服务端完整代码

import socket

HOST = ''
PORT = 12345
WORDS = b'Hello Client!'

s = socket.socket()
s.bind((HOST, PORT))
s.listen(1)
print('Server is starting...')

conn, addr = s.accept()
print('Connected by', addr)

data = conn.recv(1024)
print('Received:', data)

conn.close()
s.close()    
print('Server closed!')

4.2 客户端完整代码

import socket

SERVER = '192.168.147.128'
PORT = 12345

s = socket.socket()
s.connect((SERVER, PORT))
s.sendall(b'Hello Server!')
s.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值