TCP通信的服务器端

/*
TCP通信的服务器端:接收客户端的请求,读取客户端发送的数据,给客户端回写数据
表示服务器的类:
java.net.ServerSocket
构造方法:
ServerSocket(int port)创建绑定到特定端口的服务器套接字。
服务器端明确的事:必须知道是哪个客户端请求的服务器 用accept方法获取要请求连接的客户端对线Socket
成员方法:
accept()侦听并接受到此套接字的连接
实现步骤:
1、创建服务器ServerSocket对象和系统要指定的端口号
2、使用ServerSocket对象的方法accept,获取请求的客户端对象Socket
3、使用网络字节输入流InputStream获取网络字节输入流对象InputStream对象
4、使用网络字节输入流InputStream方法read,读取服务器回写数据
5、使用Socket对象的方法getOutputStream()获取网络字节输出流OutputStream对象
6、使用网络字节输出流OutputStream对象的write方法,给客户端回写数据
7、关闭客户端 服务器端
*/

public class TCPServer {
public static void main(String[] args) throws IOException {
    //创建服务器 要指定端口号
    ServerSocket server =new ServerSocket(8888);
    //获取要连接的客户端对象
    Socket socket = server.accept();
    InputStream is = socket.getInputStream();
    //使用read读取客户端发送的数据
    byte[] bytes =new byte[1024];
    int len =is.read(bytes);
    System.out.println(new String(bytes,0,len));
    OutputStream os  = socket.getOutputStream();
    //给客户端回写数据
    os.write("收到,谢谢".getBytes());
    socket.close();
    server.close();

}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用C#中的异步编程模型来创建一个通信服务器端。下面是一个示例代码,演示了如何使用AsyncTcpServer类来实现: ```csharp using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; class AsyncTcpServer { private TcpListener listener; public AsyncTcpServer(IPAddress ipAddress, int port) { listener = new TcpListener(ipAddress, port); } public async Task Start() { listener.Start(); Console.WriteLine("Server started. Listening for incoming connections..."); while (true) { TcpClient client = await listener.AcceptTcpClientAsync(); HandleClient(client); } } private async void HandleClient(TcpClient client) { Console.WriteLine($"Client connected: {client.Client.RemoteEndPoint}"); try { NetworkStream stream = client.GetStream(); byte[] buffer = new byte[1024]; int bytesRead; while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0) { string requestData = Encoding.ASCII.GetString(buffer, 0, bytesRead); Console.WriteLine($"Received data from client: {requestData}"); // 处理接收到的数据并返回响应 string responseData = $"Server received: {requestData}"; byte[] responseBytes = Encoding.ASCII.GetBytes(responseData); await stream.WriteAsync(responseBytes, 0, responseBytes.Length); Console.WriteLine($"Sent response to client: {responseData}"); } } catch (Exception ex) { Console.WriteLine($"Error occurred: {ex.Message}"); } finally { client.Close(); Console.WriteLine($"Client disconnected: {client.Client.RemoteEndPoint}"); } } } class Program { static async Task Main(string[] args) { IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); int port = 8080; AsyncTcpServer server = new AsyncTcpServer(ipAddress, port); await server.Start(); } } ``` 你可以根据需要修改IP地址和端口号。这个示例创建了一个异步的TCP服务器,接受客户端连接并处理接收到的数据。它使用ASCII编码来传输文本数据,你可以根据需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值