今天给各位分享javasocket发送多次的知识,其中也会对websocket高并发问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、Java服务端如何用Socket处理单台客户端的多次请求?2、java中的一个Socket能不能发送多条数据3、java中socket获取输入流,如果服务端往客户端发送了好几次数据,这几次的数据都会写进输入流里4、java socket发送和接收多条数据的情况怎么解决5、java socket 客户端能 多次 随时 向客户端发送会话吗?要怎么实现,能举个例子吗 在线等,谢谢再次谢谢
Java服务端如何用Socket处理单台客户端的多次请求?
”服务端在返回权限之后,socket就关闭了。“这说明你设计的有问题,应该返回权限后继续处理,增删改查等业务,否则会有安全问题。
我觉得,socket初始化、用户验证、每个业务请求所对应的处理,这一套操作应该放在监听的一次循环里,整个结构还是死循环。
其实,最常用的验证身份的机制是像Java Web里面的session,用户信息放进去以后,一段时间内客户过来的多次请求都从session里的用户信息验证就可以了,这也是http这种无连接方式的机制。你的这种需求这样实现比较方便啊,而且有很多增删改查的框架比如hibernate可用,为什么要用Socket发明轮子呢,最差也可以用嵌入式的tomcat或jetty这种服务器把服务嵌入到程序里实现桌面应用啊。
java中的一个Socket能不能发送多条数据
你这个问题问的我很尴尬,也有点不知道咋回,我大体说说,看能否解决你的问题,答:
能。
把socket作成一个长连接,后者说socket本身就是一个种链接,这个链接你不kill掉,就会存在(理论上。。。),他会一直发送数据,具体是否触发看你自己是怎么写的,比如某个东西改变就发送一次,那么下次这个东西改变,他还会发送一次。
我纠结的是,如果你问的不是socket能不能多次发送数据,而是一次发送能不能是多条数据,貌似也是可以的,,,
就算不可以,你也可以把多条数据存到一个对象里给发过去,到了接收端取相应的属性值即可。
——————本人菜鸟,大神勿喷
java中socket获取输入流,如果服务端往客户端发送了好几次数据,这几次的数据都会写进输入流里
看你就是网络没理解透彻。
按你的描述,你应该是用的tcp协议在传输数据。
给你拆分一下,数据,从物理层路由过后首先会到链路层(网卡),网卡再往上(网卡驱动会解析会解析数据)递交给ip层解析(操作系统实现好),再网上递交给tcp层(此层操作系统实现)。每层都会有自己的缓冲期,大小都有限制,其中在tcp层,大概有数据发送或接收的低水位限制值小于此数据读不出来发不出去,默认设置一般操作系统都是一个字节。从网络上过来的数据,传递顺序未必是有序的。即便tcp层最后把数据排序,tcp缓冲区中排序好的数据,本身就无法界定发送数据边界。tcp缓冲区中的数据再投递到内核缓存区,最后放到应用程序这里是java虚拟机中的缓冲区,java可以读出来一样是没边界的。如果要区分,只能在最后发送那条数据中做个标示多发几个标示字节。
如正常的的结束表示eof(\r\n),必须发送fin分节由操作系统自行产生然后传递给read系统调用。
java socket发送和接收多条数据的情况怎么解决
只要是接收端
你都应该不停的等待消息
,接受消息的那一段可以这样写
while(true)
{
try{
Thread.sleep(300);}catch(Excepion
e){}
//注意这里的inStream是DataInputStream
当然你也可以加以装饰
String
message=
inStream.readUTF();
if(message!=null)
{
System.out.println(“收到消息:”+message);
}
}
只有这样才能不断从发送端收到消息,这段代码只是给你一个提示,有问题给我留言,通常为了程序的合理性
最好把这段代码写进一个线程里面,这样更合理
java socket 客户端能 多次 随时 向客户端发送会话吗?要怎么实现,能举个例子吗 在线等,谢谢再次谢谢
可以做的到,但这个是有前提的,就好像QQ一样,必须对方在线,他才能收到你的会话。
比如说多次,你可以采用循环输入,等到满足一个条件时,退出!
比如说发送方代码如下:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
class practise12{
public static void main(String[] args) throws SocketException, UnknownHostException, IOException{
DatagramSocket ds=new DatagramSocket(3000);
DatagramPacket dp=null;
String str=””;
do{
System.out.println(“请输入:”);
Scanner input=new Scanner(System.in);
str=input.next();
dp=new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName(“www.easyaq.com”),8000);
ds.send(dp);
}while(str.compareTo(“exit”)!=0);
ds.close();
}
}
这样你就可以多次发送会话,当发送方输入“exit”时,程序就会退出。
接收方也是同样道理:当接收到“exit”时,程序退出。
一点灼见,希望对你有用!
关于javasocket发送多次和websocket高并发问题的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。