欧美经典成人在观看线视频_嫩草成人影院_国产在线精品一区二区中文_国产欧美日韩综合二区三区

當(dāng)前位置:首頁(yè) > 編程技術(shù) > 正文

socket如何通信

socket如何通信

Socket 是一種用于實(shí)現(xiàn)網(wǎng)絡(luò)通信的接口,它允許兩個(gè)程序在不同的計(jì)算機(jī)上通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換。以下是使用 Socket 進(jìn)行通信的基本步驟: 1. 創(chuàng)建 Socket...

Socket 是一種用于實(shí)現(xiàn)網(wǎng)絡(luò)通信的接口,它允許兩個(gè)程序在不同的計(jì)算機(jī)上通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換。以下是使用 Socket 進(jìn)行通信的基本步驟:

1. 創(chuàng)建 Socket

需要?jiǎng)?chuàng)建一個(gè) Socket。Socket 可以是 TCP 或 UDP 的。

TCP Socket:提供可靠的、面向連接的服務(wù)。

UDP Socket:提供不可靠的、無(wú)連接的服務(wù)。

```python

import socket

創(chuàng)建 TCP Socket

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

創(chuàng)建 UDP Socket

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

```

2. 連接

對(duì)于 TCP Socket,需要連接到服務(wù)器。

```python

連接到服務(wù)器

tcp_socket.connect(('127.0.0.1', 12345))

```

3. 發(fā)送和接收數(shù)據(jù)

TCP Socket:

```python

發(fā)送數(shù)據(jù)

tcp_socket.sendall(b'Hello, world!')

接收數(shù)據(jù)

data = tcp_socket.recv(1024)

print('Received:', data.decode())

```

UDP Socket:

```python

發(fā)送數(shù)據(jù)

udp_socket.sendto(b'Hello, world!', ('127.0.0.1', 12345))

接收數(shù)據(jù)

data, addr = udp_socket.recvfrom(1024)

print('Received:', data.decode(), 'from', addr)

```

4. 關(guān)閉 Socket

通信完成后,關(guān)閉 Socket。

```python

關(guān)閉 TCP Socket

tcp_socket.close()

關(guān)閉 UDP Socket

udp_socket.close()

```

示例:TCP 服務(wù)器和客戶端

TCP 服務(wù)器

```python

import socket

創(chuàng)建 TCP Socket

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

綁定到端口

server_socket.bind(('127.0.0.1', 12345))

監(jiān)聽連接

server_socket.listen()

接受連接

conn, addr = server_socket.accept()

print('Connected by', addr)

通信

with conn:

while True:

data = conn.recv(1024)

if not data:

break

print('Received:', data.decode())

conn.sendall(data)

```

TCP 客戶端

```python

import socket

創(chuàng)建 TCP Socket

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

連接到服務(wù)器

client_socket.connect(('127.0.0.1', 12345))

通信

with client_socket:

while True:

data = input()

client_socket.sendall(data.encode())

data = client_socket.recv(1024)

print('Received:', data.decode())

```

這樣,你就完成了使用 Socket 進(jìn)行通信的基本流程。希望這能幫助你!