java中socket不断接收数据问题

我发送一个字符串给服务器,服务器会返回给我七条数据,这七条数据是这样发的:发完第一条马上发第二条发完二马上发三...也就是说七条不是同时给我的,中间有那么几毫秒的时间,现在我要做的是,把这七条数据都接收到,分别截取每一条数据中特定位置的那个字符(比如下标为3的字符),存在数组中。我的问题是:我怎么接收这七条数据并截取?现在我只能通过socket接收第一条数据并截取,后面的就收不到了

,各位帮忙啊!

其实,方法有几个。
方法一:
定义一个MsgObject的消息类,里面存放的为发送的消息内容(记得序列化)。然后再用ObjectOutputStream来把该类弄成一个输出流发送出去。然后客户端就用
ObjectInputStream in=new ObjectInputStream(socket.getInputStream());
MsgObject obj=(MsgObject)in.getObject();就能够得到一个消息类对象了。。
不会的就追问下,我之前是这样做过的。

方法二:
如果你会json格式,那么就更加简单了,直接把你的消息放到json数组里面。。
这种方法没试过,我近期使用json过于频繁才突然记得的,如果你有兴趣用这个方法,可以一起讨论下。

方法三:
弄多个输入输出流,但是这个不建议追问

老兄,我是要接收七条数据,我上面说得应该还蛮清楚的吧-.-

追答

这有多难啊,朋友

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-12-02
开一个线程专门用来接收信息 用socket的read方法 此方法为阻塞式 然后用一个死循环不断接收

public class ThreadTest extends Thread { //线程类
public void run() { //run方法
while(true) { //用死循环不断接收
socket.read(); //此方法为阻塞式,当有信息发送过来时就往下执行否则一直等待
//然后做你需要的相应处理
}
}
}

提供一个思路 具体实现还需自己多查查api 不懂可以追问追问

貌似我点不出socket的read()方法-.-

追答

不好意思 不是socket的 是socket.getInputStream().read();

第2个回答  2013-12-02
你把这七条数据全都封装成一条再发送不可以吗?
相似回答