gpt4 book ai didi

java - 制作单一客户端和服务器

转载 作者:行者123 更新时间:2023-12-01 15:54:15 27 4
gpt4 key购买 nike

我写了一个客户端服务器程序:

 {
import java.net.*;
class verify {
public static int serverPort=998;
public static int clientPort=999;
public static int buffer_size=1024;
public static DatagramSocket ds;
public static byte buffer[]=new byte[buffer_size];

public static void TheServer() throws Exception {
int pos=0;
while (true) {
int c=System.in.read();
switch(c) {
case -1:
System.out.println("server quits");
return;
case '\r':
break;
case '\n':
ds.send(new DatagramPacket(buffer,pos,InetAddress.getLocalHost(),clientPort)) ;
pos=0;
break;
default:
buffer[pos++] = (byte) c;
}
}
}

public static void TheClient()throws Exception {
while(true) {
DatagramPacket p=new DatagramPacket(buffer,buffer.length);
ds.receive(p);
System.out.println(new String(p.getData(),0,p.getLength()));
}
}

public static void main(String args[]) throws Exception{
if(args.length==1) {
ds=new DatagramSocket(serverPort);
TheServer();
} else {
ds=new DatagramSocket(clientPort);
TheClient();
}
}
}
}

我可以让我的电脑既是服务器又是客户端。如果是,请提出一个出路。

最佳答案

是的,您的PC绝对可以既是服务器又是客户端。然而,我不能说如何从你的代码到达那里。

一般来说,在 TheServer() 中,您需要创建一个 ServerSocket 并将其设置为监听 serverPort。然后执行诸如 Socket clientSocket = serverSocket.accept() 之类的操作来等待并接受下一个传入连接。

然后在 TheClient() 中,您在 serverPort 上创建一个新的 Socket 到“localhost”。这将连接您的服务器和客户端。

请注意,由于 serverSocket.accept() 会阻塞,因此您的服务器和客户端无法共享同一线程。因此,您可以像现在一样运行应用程序的两个单独实例,也可以使用 main()TheServer() 设置一个新线程然后在调用 TheClient() 之前启动它。

关于java - 制作单一客户端和服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401369/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com