java中socket不断接收数据问题 5

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

,各位帮忙啊!
展开
 我来答
Stale331x
2013-12-02 · TA获得超过1299个赞
知道小有建树答主
回答量:1276
采纳率:33%
帮助的人:835万
展开全部
其实,方法有几个。
方法一:
定义一个MsgObject的消息类,里面存放的为发送的消息内容(记得序列化)。然后再用ObjectOutputStream来把该类弄成一个输出流发送出去。然后客户端就用
ObjectInputStream in=new ObjectInputStream(socket.getInputStream());
MsgObject obj=(MsgObject)in.getObject();就能够得到一个消息类对象了。。
不会的就追问下,我之前是这样做过的。

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

方法三:
弄多个输入输出流,但是这个不建议
追问
老兄,我是要接收七条数据,我上面说得应该还蛮清楚的吧-.-
追答

这有多难啊,朋友

zsc我行我素
2013-12-02 · TA获得超过241个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:92.3万
展开全部
开一个线程专门用来接收信息 用socket的read方法 此方法为阻塞式 然后用一个死循环不断接收

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

提供一个思路 具体实现还需自己多查查api 不懂可以追问
追问
貌似我点不出socket的read()方法-.-
追答
不好意思  不是socket的   是socket.getInputStream().read();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
透明的氢气
2013-12-02 · TA获得超过142个赞
知道小有建树答主
回答量:213
采纳率:0%
帮助的人:165万
展开全部
你把这七条数据全都封装成一条再发送不可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式