永发信息网

java socket问题,写了个简单的程序,客户端输出到服务器端,服务器端接收到后返回数据,出现问题!!

答案:2  悬赏:70  手机版
解决时间 2021-11-11 08:40
java socket问题,写了个简单的程序,客户端输出到服务器端,服务器端接收到后返回数据,出现问题!!
最佳答案
我修改了,直接用socket的输入输出流实现:
服务器端:
import java.io.*;
import java.net.*;
public class server{

public static void main(String args[]) throws IOException
{
ServerSocket ss = null;
Socket socket = null;
try {
ss=new ServerSocket(8888);
System.out.println("server is starting");
socket=ss.accept();
System.out.println("New connection accepted " +socket.getInetAddress() + ":" +socket.getPort());
InputStream Is = socket.getInputStream();
OutputStream Os = socket.getOutputStream();
DataInputStream DIS = new DataInputStream(Is);
PrintStream PS = new PrintStream(Os);
String recvStr = DIS.readLine();
System.out.println(recvStr);
PS.println(recvStr+"received");
DIS.close();
PS.close();
Is.close();
Os.close();

} catch (IOException e) {
e.printStackTrace();
} finally {
try {
socket.close();
ss.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
客户端:
import java.io.*;
import java.net.*;
public class client{

public static void main(String args[]) throws IOException
{
Socket socket = null;
try {
socket=new Socket("127.0.0.1",8888);
if(socket == null)
System.out.println("error");
InputStream Is = socket.getInputStream();
OutputStream Os = socket.getOutputStream();
DataInputStream DIS = new DataInputStream(Is);
PrintStream PS = new PrintStream(Os);
PS.println("hello");
System.out.println(DIS.readLine());
DIS.close();
PS.close();
Is.close();
Os.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(socket!=null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

运行结果:
java server
server is starting
New connection accepted /127.0.0.1:45786
hello

java client
helloreceived追问这样写我这儿也没问题,问题是这个类得readline是过期的啊,我要读一行数据还是不太方便~~~
全部回答
嗯,问题处在了楼主没有调用bw.flush()方法,数据还都在内存里呢还没写到流中,当然看不到了,应该在server和client的bw.close()上面各加bw.flush()就Ok了追问flush都加过了,还是不行,如果单独在client端写,在server端读,完全没有问题,但是在两端同时写和读就有问题
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问立志高的字谜
吉兰特体育文化发展有限公司地址有知道的么?
口感极佳的红糖蛋糕怎么做好吃又简单,做
江门台风会刮到几号?
绕梁三日的成语
影响采购业务流程的因素有哪些
新中西里交通方便吗?应该怎么过去?
老师会怎么看这个姑娘?
如何减去脸部的咀嚼肌肉??
为什么肇庆摩托车端州牌这么值钱
求图中两张图片
焊工都有哪些证
唐山市曹妃甸区唐海县有花鸟虫鱼市场吗
金蝶K3物料重新编号
soccer 和soccer ball有什么区别?
推荐资讯
蒜苔腐竹肉怎么炒好吃
富河村地址在哪,我要去那里办事,
老火慢炖煲炖乳鸽要多长时间
驼峰式大小写的定义
农村老人过世后的农村股份如何分配? 老人有
为什么历代班禅的真身都在日喀则
华侨大酒店-健身中心地址在什么地方,想过去
求TF图片,要15张!三人都要!谢谢了!
人家先不跟我讲理我们应该躲避吗
男士长袖T恤170人X88是48吗
河南娶媳妇四干 四湿指的是什么?
我想买一双轮滑鞋,我的脚长为268mm,请问那
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?