将客户端编程服务端的过程涉及多个步骤,以下是一些常见编程语言的示例:
1. 使用Python进行Socket编程
服务器端代码示例:
```python
import socket
创建Socket对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
绑定地址和端口
server_socket.bind(('localhost', 9999))
监听连接
server_socket.listen(5)
print("服务器启动,等待连接...")
while True:
接受一个新连接
client_socket, addr = server_socket.accept()
print(f"连接地址: {addr}")
接收数据
received = client_socket.recv(1024)
print(f"收到消息: {received.decode()}")
发送数据
client_socket.send(b"Hello from server!")
关闭连接
client_socket.close()
```
客户端代码示例:
```python
import socket
创建Socket对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
连接到服务器
client_socket.connect(('localhost', 9999))
接收数据
data = client_socket.recv(1024)
print(f"收到消息: {data.decode()}")
发送数据
client_socket.send(b"Hello from client!")
关闭连接
client_socket.close()
```
2. 使用Java进行Socket编程
服务器端代码示例:
```java
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("服务器启动,等待连接...");
while (true) {
Socket clientSocket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
PrintWriter out = new PrintWriter(clientSocket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("收到消息: " + inputLine);
out.println("Hello from server!");
}
clientSocket.close();
}
}
}
```
客户端代码示例:
```java
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 9999);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
out.println("Hello from client!");
String response = in.readLine();
System.out.println("收到消息: " + response);
socket.close();
}
}
```
3. 使用C进行Socket编程
服务器端代码示例:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class Server
{
static void Main()
{
IPAddress localAddr = IPAddress.Parse("127.0.0.1");
IPEndPoint localEP = new IPEndPoint(localAddr, 9999);
Socket listener = new Socket(localAddr.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
listener.Bind(localEP);
listener.Listen(10);
Console.WriteLine("服务器启动,等待连接...");
while (true)
{
Socket handler = listener.Accept();
string data = null;
byte[] bytes = new byte;
int i = handler.Receive(bytes);
data += Encoding.ASCII.GetString(bytes, 0, i);
Console.WriteLine("收到消息: " + data);
byte[] msg = Encoding.ASCII.GetBytes("Hello from server!");
handler.Send(msg);
handler.Close();
}
}
}
```
客户端代码示例: