java socket 客户端是如何向服务器端发送消息的

java socket 客户端是如何向服务器端发送消息的,第1张

服务器端和客户端都是通过SOCKET来进行通信的,首先产生一个 socket实例,通过这个实例,服务器端调用accept这个方法接收来自客户端发送的信息但是在产生socket实例的时候必须初始化一个端口用来负责接受客户端的请求!
客户端要给服务器发送消息也必须产生一个socket实例,初始化的时候必须指定服务器的IP地址,并且指定服务接收的端口号,这样客户端才能找到服务器要接收的地方,找到地方就可以发送过去了。和你写信一样。找到地址
BufferedReader in = new BufferedReader(new InputStreamReader(socketgetInputStream()));

PrintWriter out = new PrintWriter(socketgetOutputStream());

BufferedReader wt = new BufferedReader(new InputStreamReader(Systemin));
这个只是用来获取一个从键盘的一个流传送给服务器端的数据都是通过流来表示的。意思是是键盘输入的一个字节转化成字符流并输出或者写入!

那两java是在一个包里的,其中一个是main函数的。也就是说,mian的java启动了另一个java文件。所以你只有选择那整个包,run as java application就是运行服务器了

在同一个局域网 就可以用socket通讯。(主要是要知道接收方电脑IP 地址以及自己设置TCP端口) 服务端无需部署。志要在你认识是服务器的电脑上运行,socket接收小程序就可以了。我有相应的 相互发socket 的小软件 带源码 可以参考

其实单纯的靠socketio去访问跨域是可行的,出问题的是session,也就是cookie你socketio服务端ioset('authorization’,function(handshakeData,callback){/}肯定有这个认证,一旦跨域,handshakeDataheaderscookie是获取的服务器域的cookie而express的session管理也是将cookie记录在服务端里的,只有你访问服务端域的时候,cookie才会生成,这时才有所谓的session。appuse(session({resave:true,saveUninitialized:true,secret:configsession_optionsecret,cookie:{maxAge:10006060241},store:storeMemory}));在你服务端没有cookie记录的时候(默认为connectsid),直接通过客户端socketio去远程链接是生成不了cookie的,同时也就获取不到,在认证这块就出了问题,所以就走不通。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13498496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-19
下一篇 2023-08-19

发表评论

登录后才能评论

评论列表(0条)

保存