当前位置:首页 » 编程语言 » javasocket读取

javasocket读取

发布时间: 2025-01-19 16:59:48

‘壹’ java ServerSocket和Socket通讯代码无法读取信息

两个问题,造成阻塞
1)readLine()读到换行是才返回,所以info=“前来报到/r/n”
2)server端的while循环导致阻塞,因为他一直在读,但是client端就写了一次,所以server一直在等在,现在把两个while改为if,就可以
你先试下

建议用printwriter

‘贰’ java编程中,Socket通信是怎么实现的

java编程对于Socket之间的通信过程如下:

服务端往Socket的输出流里面写东西,客户端就可以通过Socket的输入流读取对应的内容。Socket与Socket之间是双向连通的,所以客户端也可以往对应的Socket输出流里面写东西,然后服务端对应的Socket的输入流就可以读出对应的内容。下面来看一些服务端与客户端通信的例子:

publicclassServer{

publicstaticvoidmain(Stringargs[])throwsIOException{
//为了简单起见,所有的异常信息都往外抛
intport=8899;
//定义一个ServerSocket监听在端口8899上
ServerSocketserver=newServerSocket(port);
//server尝试接收其他Socket的连接请求,server的accept方法是阻塞式的
Socketsocket=server.accept();
//跟客户端建立好连接之后,我们就可以获取socket的InputStream,并从中读取客户端发过来的信息了。
Readerreader=newInputStreamReader(socket.getInputStream());
charchars[]=newchar[64];
intlen;
StringBuildersb=newStringBuilder();
while((len=reader.read(chars))!=-1){
sb.append(newString(chars,0,len));
}
System.out.println("fromclient:"+sb);
reader.close();
socket.close();
server.close();
}

}
客户端代码
Java代码publicclassClient{

publicstaticvoidmain(Stringargs[])throwsException{
//为了简单起见,所有的异常都直接往外抛
Stringhost="127.0.0.1";//要连接的服务端IP地址
intport=8899;//要连接的服务端对应的监听端口
//与服务端建立连接
Socketclient=newSocket(host,port);
//建立连接后就可以往服务端写数据了
Writerwriter=newOutputStreamWriter(client.getOutputStream());
writer.write("HelloServer.");
writer.flush();//写完后要记得flush
writer.close();
client.close();
}

}
热点内容
怎么自己买2手服务器 发布:2025-07-24 10:45:13 浏览:351
脚本打招募 发布:2025-07-24 10:40:56 浏览:556
如何进入一个人多的服务器 发布:2025-07-24 10:34:58 浏览:302
漯河ftp服务器 发布:2025-07-24 10:15:41 浏览:501
android文件拷贝 发布:2025-07-24 10:12:02 浏览:360
ios解压缩zip 发布:2025-07-24 10:11:22 浏览:244
微信的安卓夜间模式怎么设置 发布:2025-07-24 09:04:19 浏览:753
安卓手机丢了怎么定位 发布:2025-07-24 09:04:17 浏览:216
psvproxy服务器怎么设置 发布:2025-07-24 08:36:40 浏览:194
超越脚本 发布:2025-07-24 08:36:37 浏览:809