建立Socket

使用socket类的connect方法

#!/usr/bin/env python

# Basic Connection Example - Chapter 2 - connect.py


import socket


print "Creating socket...",

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

print "done."


print "Connecting to remote host...",

s.connect(("www.google.com", 80))

print "done."

在应用程序中建立 Socket 连接通常涉及以下几个步骤:创建套接字、连接服务器(或监听客户端)、发送和接收数据、关闭连接。具体实现方式取决于编程语言和通信协议(TCP 或 UDP)。 ### 使用 TCP 建立 Socket 连接 TCP 是面向连接的协议,适用于需要可靠传输的应用场景,例如聊天应用、文件传输等。 #### Python 示例(TCP 客户端): ```python import socket # 创建套接字 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接到服务器 s.connect(("127.0.0.1", 30000)) # 发送数据 s.sendall(b"Hello, Server!") # 接收数据 data = s.recv(1024) print("Received:", data.decode()) # 关闭连接 s.close() ``` #### Python 示例(TCP 服务器): ```python import socket # 创建服务器套接字并绑定端口 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(("0.0.0.0", 30000)) s.listen(1) print("Server is listening...") # 接受客户端连接 conn, addr = s.accept() print("Connected by", addr) # 接收客户端数据 data = conn.recv(1024) print("Received:", data.decode()) # 回复客户端 conn.sendall(b"Hello, Client!") # 关闭连接 conn.close() ``` ### 使用 UDP 建立 Socket 连接 UDP 是无连接的协议,适用于对实时性要求较高的场景,例如音视频传输、游戏通信等。 #### Python 示例(UDP 客户端): ```python import socket # 创建 UDP 套接字 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 发送数据 s.sendto(b"Hello, Server!", ("127.0.0.1", 30000)) # 接收响应 data, server = s.recvfrom(1024) print("Received:", data.decode()) ``` #### Python 示例(UDP 服务器): ```python import socket # 创建 UDP 套接字并绑定端口 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind(("0.0.0.0", 30000)) print("UDP Server is running...") while True: data, addr = s.recvfrom(1024) print("Received from", addr, ":", data.decode()) s.sendto(b"Hello, Client!", addr) ``` ### 注意事项 - 在实际网络环境中,Socket 连接可能会因防火墙或 NAT 的影响而中断,需要通过心跳机制保持连接活跃 [^2]。 - TCP 连接一旦建立,即可双向通信,适用于需要持续交互的场景 。 - UDP 不需要建立连接,直接发送数据报文,适用于低延迟场景 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值