python3.2 一个简单的socket 程序

On Server:


# -*- coding: utf-8 -*-
#this is the server
import socket

if "__main__" == __name__:
    try:
        sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
        print("create socket suc!")
        
        sock.bind(('localhost',8008))
        print('bind socket suc!')
 
        sock.listen(5)
        print('listen socket suc!')      
        
    except:
        print("init socket err!")
        
    while True:
        print('listren for client...')
        conn,addr = sock.accept()
        print('get client')
        print(addr)
        
        conn.settimeout(5)
        szBuf = conn.recv(1024)
        byt = 'recv:' + szBuf.decode('gbk')
        print(byt)
        
        if '0' == szBuf:
            conn.send('exit')
        else:
            conn.send('welcome client!')
        
        conn.close()
        print('end of the service')
       

On Client:

import socket

if "__main__" == __name__:


    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    sock.connect(('localhost',8008))
    sock.send(b'0')
    
    szBuf = sock.recv(1024)
    byt = 'recv:' + szBuf.decode('gbk')
    print(byt)
    
    sock.close()
    print('end of the connecct')
       


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,下面是一个使用Python完成的简单socket程序示例。这是一个服务器端程序,它接收客户端发送的信息并将其返回给客户端: ``` import socket # 创建套接字 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 获取本地主机名 host = socket.gethostname() port = 12345 # 绑定端口号 server_socket.bind((host, port)) # 设置最大连接数,超过后排队 server_socket.listen(5) print("服务器启动,等待客户端连接...") while True: # 建立客户端连接 client_socket, addr = server_socket.accept() print("连接地址:%s" % str(addr)) msg = "欢迎使用本服务器!\r\n" client_socket.send(msg.encode('utf-8')) client_socket.close() ``` 客户端代码: ``` import socket # 创建套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = socket.gethostname() port = 12345 # 连接服务器 client_socket.connect((host, port)) # 接收小于1024字节的数据 msg = client_socket.recv(1024) client_socket.close() print(msg.decode('utf-8')) ``` 这仅仅是一个简单的示例,您可以根据需要更改代码以实现更复杂的功能。 ### 回答2: 以下是一个使用Python完成的简单Socket程序的示例: ```python import socket # 服务器端 def server(): # 创建socket对象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定本地IP和端口 server_address = ('localhost', 8888) server_socket.bind(server_address) # 监听客户端连接 server_socket.listen(1) print('等待客户端连接...') # 接受客户端连接 client_socket, client_address = server_socket.accept() print('客户端已连接:', client_address) # 接收客户端发送的数据 data = client_socket.recv(1024) print('收到客户端消息:', data.decode('utf-8')) # 发送响应给客户端 response = 'Hello, Client!' client_socket.send(response.encode('utf-8')) # 关闭连接 client_socket.close() server_socket.close() # 客户端 def client(): # 创建socket对象 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 server_address = ('localhost', 8888) client_socket.connect(server_address) # 发送数据给服务器 message = 'Hello, Server!' client_socket.send(message.encode('utf-8')) # 接收服务器响应 data = client_socket.recv(1024) print('收到服务器消息:', data.decode('utf-8')) # 关闭连接 client_socket.close() if __name__ == '__main__': server() # 启动服务器 # client() # 启动客户端 ``` 这是一个简单Socket程序,包括服务器端和客户端。服务器端监听指定端口,等待客户端连接,接收客户端发送的消息并返回响应。客户端连接服务器,发送消息给服务器,并接收服务器的响应。 在程序中,服务器端使用`socket`库的`socket`方法创建一个socket对象,然后使用`bind`方法绑定本地IP和端口,使用`listen`方法监听客户端连接。接受客户端连接后,使用`accept`方法返回一个连接对象和客户端的地址。通过连接对象,可以使用`recv`方法接收客户端发送的消息,并使用`send`方法发送响应给客户端。最后,关闭连接。 客户端使用`socket`库的`socket`方法创建一个socket对象,然后使用`connect`方法连接服务器。连接成功后,使用`send`方法发送消息给服务器,并使用`recv`方法接收服务器的响应。最后,关闭连接。 还要注意,在程序中服务器端和客户端的启动分别放在`if __name__ == '__main__':`的`server()`和`client()`中,您可以根据需要注释掉其中一个来选择启用服务器端还是客户端。 ### 回答3: 以下是一个使用 Python 完成的基本 Socket 程序: ```python import socket def main(): # 创建 socket 对象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定 IP 地址和端口号 server_ip = '127.0.0.1' server_port = 8888 server_socket.bind((server_ip, server_port)) # 开始监听连接 server_socket.listen(1) print('Server started and listening for connections...') while True: # 等待客户端连接 client_socket, client_address = server_socket.accept() print('Connected with', client_address) while True: # 接收客户端发送的数据 data = client_socket.recv(1024).decode() if not data: break print('Received data:', data) # 发送响应给客户端 response = 'Server received: ' + data client_socket.send(response.encode()) # 关闭与客户端的连接 client_socket.close() print('Connection closed with', client_address) if __name__ == '__main__': main() ``` 这个程序是一个简单的 TCP 服务器,它监听本地IP地址 127.0.0.1 的 8888 端口,并接受客户端的连接。一旦连接建立,它会接收客户端发送的数据,然后将收到的数据原样返回给客户端。程序会持续监听并处理多个客户端的连接。 请注意,此示例仅适用于展示目的,实际应用中需要添加错误处理和其他必要的功能,例如对数据的验证和处理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值