返回信息流当看到报错的时候我以为是那个异常是重点,后来发现原来是在CSocket类中,把send()和read()都写错了...,修正之后发现仅能连接一次,然后服务器又挂了,于是发现服务器中的一块错误,即serverSocket类仅该赋值(我也不知道这个说法对不对)一次,而不是放到循环中去。至于为什么我还没搞懂.....
我犯了几个低级错误,大牛就不要笑话我了,嘿嘿,算是给其他初学者一个借鉴吧
下面的是错误代码
//moduleServer.java
import java.io.*;
import java.util.*;
import java.net.*;
public class moduleServer{
public static void main(String args[]){
ServerSocket s=null;
Socket ts;
CSocket ss;
while(true){
try{
s=new ServerSocket(5555);
ts=s.accept();
ss=new CSocket(ts);
ss.send("你好我是服务器!");
String str=ss.read();
System.out.println(str);
}
catch (IOException e){System.out.println("服务器挂了,不好意思");}
}
}
}
//CSocket.java
import java.net.*;
import java.io.*;
public class CSocket {
private Socket Cocket;
private InputStream csIn;
private OutputStream csOut;
private DataInputStream csis;
private DataOutputStream csos;
private String str;
public CSocket(Socket a){
Cocket=a;
}
public String read()throws IOException{
csOut=Cocket.getOutputStream();
csos=new DataOutputStream(csOut);
str=new String(csis.readUTF()) ;
return str;
}
public void send(String msg)throws IOException{
csIn=Cocket.getInputStream();
csis=new DataInputStream(csIn);
csos.writeUTF(msg);
}
public void close()throws IOException{
csIn.close();
csOut.close();
}
}
这是一条镜像帖。来源:北邮人论坛 / java / #13598同步于 2010/3/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
求助引用的问题
nature1089
2010/3/20镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
【 在 fireflyk 的大作中提到: 】
: 没用过CSocket……
: 我用的好像是accept之后,就得到Socket的对象了
额,呵呵 CSocket是我自己定义的..
public void send(String msg)throws IOException{
csIn=Cocket.getInputStream();
csis=new DataInputStream(csIn);
csos.writeUTF(msg);
}
lz,你好乱啊。又是进去又是出来的。你想干啥。到底想input还是output,细心点。。
【 在 greedisgood 的大作中提到: 】
: public void send(String msg)throws IOException{
: csIn=Cocket.getInputStream();
: csis=new DataInputStream(csIn);
: ...................
lz肯定把input和output概念搞混了。
send是output,read才是input。
【 在 greedisgood 的大作中提到: 】
:
: lz肯定把input和output概念搞混了。
: send是output,read才是input。
: ...................
恩恩,的确是,呵呵