java中socket不断接收数据问题 5
我发送一个字符串给服务器,服务器会返回给我七条数据,这七条数据是这样发的:发完第一条马上发第二条发完二马上发三...也就是说七条不是同时给我的,中间有那么几毫秒的时间,现...
我发送一个字符串给服务器,服务器会返回给我七条数据,这七条数据是这样发的:发完第一条马上发第二条发完二马上发三...也就是说七条不是同时给我的,中间有那么几毫秒的时间,现在我要做的是,把这七条数据都接收到,分别截取每一条数据中特定位置的那个字符(比如下标为3的字符),存在数组中。我的问题是:我怎么接收这七条数据并截取?现在我只能通过socket接收第一条数据并截取,后面的就收不到了
,各位帮忙啊! 展开
,各位帮忙啊! 展开
3个回答
展开全部
其实,方法有几个。
方法一:
定义一个MsgObject的消息类,里面存放的为发送的消息内容(记得序列化)。然后再用ObjectOutputStream来把该类弄成一个输出流发送出去。然后客户端就用
ObjectInputStream in=new ObjectInputStream(socket.getInputStream());
MsgObject obj=(MsgObject)in.getObject();就能够得到一个消息类对象了。。
不会的就追问下,我之前是这样做过的。
方法二:
如果你会json格式,那么就更加简单了,直接把你的消息放到json数组里面。。
这种方法没试过,我近期使用json过于频繁才突然记得的,如果你有兴趣用这个方法,可以一起讨论下。
方法三:
弄多个输入输出流,但是这个不建议
方法一:
定义一个MsgObject的消息类,里面存放的为发送的消息内容(记得序列化)。然后再用ObjectOutputStream来把该类弄成一个输出流发送出去。然后客户端就用
ObjectInputStream in=new ObjectInputStream(socket.getInputStream());
MsgObject obj=(MsgObject)in.getObject();就能够得到一个消息类对象了。。
不会的就追问下,我之前是这样做过的。
方法二:
如果你会json格式,那么就更加简单了,直接把你的消息放到json数组里面。。
这种方法没试过,我近期使用json过于频繁才突然记得的,如果你有兴趣用这个方法,可以一起讨论下。
方法三:
弄多个输入输出流,但是这个不建议
追问
老兄,我是要接收七条数据,我上面说得应该还蛮清楚的吧-.-
追答
这有多难啊,朋友
展开全部
开一个线程专门用来接收信息 用socket的read方法 此方法为阻塞式 然后用一个死循环不断接收
public class ThreadTest extends Thread { //线程类
public void run() { //run方法
while(true) { //用死循环不断接收
socket.read(); //此方法为阻塞式,当有信息发送过来时就往下执行否则一直等待
//然后做你需要的相应处理
}
}
}
提供一个思路 具体实现还需自己多查查api 不懂可以追问
public class ThreadTest extends Thread { //线程类
public void run() { //run方法
while(true) { //用死循环不断接收
socket.read(); //此方法为阻塞式,当有信息发送过来时就往下执行否则一直等待
//然后做你需要的相应处理
}
}
}
提供一个思路 具体实现还需自己多查查api 不懂可以追问
追问
貌似我点不出socket的read()方法-.-
追答
不好意思 不是socket的 是socket.getInputStream().read();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把这七条数据全都封装成一条再发送不可以吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询