客户端要给服务器发送消息也必须产生一个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的,同时也就获取不到,在认证这块就出了问题,所以就走不通。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)