handlersocketios socket和xmpp哪个好

handlersocket  时间:2021-06-21  阅读:()

要完成一个java服务器,要求一个客户端能通过服务器向别的客户端发送“hello”,也能接收“hello”

import .*; import java.awt.*; import java.awt.event.*; import java.io.*; public class Client1 extends Frame implements Runnable{ Socket socket; BufferedReader in; PrintWriter out; private TextField textfield = new TextField();//输入文本框 就是你想从键盘输入的数据先写在这 private TextArea textarea = new TextArea();//对话框 显示客户端之间的聊天信息 public Client1() { super("聊天窗口");//初始化窗口标题 setSize(300,200);//设置窗口大小 setLayout(new BorderLayout());//布局 add(BorderLayout.SOUTH, textfield); add(BorderLayout.CENTER, textarea); textfield.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { sendChat(textfield.getText());//向服务器发送数据 } });//增加监听器 当你按下回车键时就执行 this.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ try{ if(in!=null)in.close(); if(out!=null)out.close(); if(socket!=null)socket.close(); }catch(IOException e){ } System.exit(0);//退出程序 } });//增加关闭窗口的监听器 当点击窗口的X时关闭窗口 try{ socket = new Socket("localhost", 3333); out = new PrintWriter(socket.getOutputStream(), true); in=new BufferedReader(new InputStreamReader(socket.getInputStream())); }catch(Exception e){ e.printStackTrace(); } new Thread(this).start();//用一个线程去接收从服务器转发的其他客户端的数据 setVisible(true); } //sendChat方法用于向服务器发送数据 public void sendChat(String message) { out.println(message); textfield.setText("");//输入框清空 } public void run(){ String message=null; try { while (true) { message = in.readLine(); textarea.append(message + " ");//把从服务器转发来的其他客户端信息追加到对话框 } } catch (IOException e) {System.out.println(e);} } public static void main(String[] args) { new Client1(); } }

什么是套接字(socket)

套接字(socket)是用于网络通信的基本操作单元。

简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程。

套接字可以根据通信性质分类,主要分 流式套接字(SOCK_STREAM), 数据报套接字(SOCK_DGRAM)以及原始套接字(SOCK_RAW).

数据报套接字提供了一种不可靠的、非连接的数据包通信方式。

所以 数据报套接字使用UDP协议,当然,winsock 2版本还支持其他协议。

手机作为客户端,电脑作为服务器进行android socket通信

1.PC服务器启用ServerSocket两个通信实体在建立虚拟链路之前,需要有一方先准备好,主动接受来自其他通信实体的连接请求。

使用ServerSocket对象监听来自客户端的Socket连接。

//创建ServerSocket对象ServerSocketss=newServerSocket(30000);//监听来自客户端的请求while(true){Sockets=ept();…}如果没有连接,则将一直处于等待状态。

当接收到连接请求后,获取消息到输入流,并保存到文件。

//接收客户端消息BufferedReaderin=newBufferedReader(newInputStreamReader(client.getInputStream()));Stringstr;BufferedWriterbw=newBufferedWriter(newFileWriter("D:/ApInfo"+(i++)+".txt"));while((str=in.readLine())!=null){System.out.println(str);bw.write(str);bw.newLine();}2.Android终端使用Socket通信客户端使用Socket的构造器连接服务器,指定服务器IP和端口号就可以了。

Sockets=newSocket(“192.168.1.100”,30000);这样服务器端的ept()方法就得到响应,从而向下执行,服务器端和客户端就形成了一对互相连接的Socket。

再进行通信时就没有服务器和客户端之分了,都是通过输入输出流进行通信。

详细步骤:采用Handler和TimerTask来定时扫描AP信息并发送给服务器端。

TimerTask规定了到达指定的时间所要进行的任务。

TimerTasktask=newTimerTask(){publicvoidrun(){Messagemessage=newMessage();message.what=1;handler.sendMessage(message);}};handler传递message内容:Handlerhandler=newHandler(){publicvoidhandleMessage(Messagemsg){switch(msg.what){case1://执行定时器时间到了之后由handler传递的任务break;}super.handleMessage(msg);}}接下来扫描AP信息并发送给服务器端,然后将结果保存。

WifiManagerwifiManager=(WifiManager)getSystemService(WIFI_SERVICE);wifiManager.startScan();mWifiList=wifiManager.getScanResults();由WifiManager说明可知,它可以用于处理已配置的网络,当前连接的网络及AP信息的扫描等情况。

向服务器发送消息:socket=newSocket("192.168.1.211",30000);//向服务器端发送消息PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream())),true);out.println(message);其中message为获取的AP信息,测试收到的信息格式为:SSID:ICIS_LAB,BSSID:1c:af:f7:9a:65:e4,capabilities:[WPA-PSK-TKIP+CCMP],level:-80,frequency:2437

一个聊天程序 求大神指点

给个简单的客户端的例子,lz对比自己的码看看有什么出入 (注意:ClientHandler是inner class) package chap15; import java.io.*; import .*; import java.util.*; public class VerySimpleChatServer { ArrayList clientOutputStreams; public class ClientHandler implements Runnable { BufferedReader reader; Socket sock; public ClientHandler(Socket clientSOcket) { try { sock = clientSOcket; InputStreamReader isReader = new InputStreamReader(sock.getInputStream()); reader = new BufferedReader(isReader); } catch (Exception ex) { ex.printStackTrace(); } } public void run() { String message; try { while ((message = reader.readLine()) != null) { System.out.println("read " + message); tellEveryone(message); } } catch (Exception ex) { ex.printStackTrace(); } } } public static void main(String[] args) { new VerySimpleChatServer().go(); } public void go() { clientOutputStreams = new ArrayList(); try { ServerSocket serverSock = new ServerSocket(5000); while(true) { Socket clientSocket = ept(); PrintWriter writer = new PrintWriter(clientSocket.getOutputStream()); clientOutputStreams.add(writer); Thread t = new Thread(new ClientHandler(clientSocket)); t.start(); System.out.println("got a connection"); } } catch (Exception ex) { ex.printStackTrace(); } } public void tellEveryone(String message) { Iterator it = clientOutputStreams.iterator(); while (it.hasNext()) { try { PrintWriter writer = (PrintWriter) it.next(); writer.println(message); writer.flush(); } catch (Exception ex) { ex.printStackTrace(); } } } }

ios socket和xmpp哪个好

socket是套接字,在你的语境下,多指传输层网络接口。

webSocket,是一个应用层协议,说的是,目前浏览器实现的一套通信协议,用来解决之前HTTP,请求响应模型不合适的场合。

XMPP,是一个应用层协议,协议基于XML结构设计。

其实websocket是socket的简约实现,与socket相比,可以节省额外的端口占用,直接使用一个公网域名访问。

另外协议对报文的流量消耗做了优化。

xmpp与websocket比也是比较臃肿的 xmpp是im的使用比较广泛的协议,早期的手机端推送为了省事就用的这种协议,但是后来发现这种协议比较臃肿耗流量,而且对服务器要求比较高

HostHatch(15美元)大硬盘VPS,香港NVMe,美国、英国、荷兰、印度、挪威、澳大利亚

HostHatch在当地时间7月30日发布了一系列的促销套餐,涉及亚洲和欧美的多个地区机房,最低年付15美元起,一次买2年还能免费升级双倍资源。商家成立于2011年,提供基于KVM架构的VPS主机,数据中心包括中国香港、美国、英国、荷兰、印度、挪威、澳大利亚等国家的十几个地区机房。官方网站:https://hosthatch.com/NVMe VPS(香港/悉尼)1 CPU core (12.5%...

Raksmart:香港高防服务器/20Mbps带宽(cn2+bgp)/40G-100Gbps防御

RAKsmart怎么样?RAKsmart香港机房新增了付费的DDoS高防保护服务,香港服务器默认接入20Mbps的大陆优化带宽(电信走CN2、联通和移动走BGP)。高防服务器需要在下单页面的IP Addresses Option里面选择购买,分:40Gbps大陆优化高防IP-$461/月、100Gbps国际BGP高防IP-$692/月,有兴趣的可以根据自己的需求来选择!点击进入:RAKsmart官...

星梦云60元夏日促销,四川100G高防4H4G10M,西南高防月付特价

星梦云怎么样?星梦云好不好,资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器 。官方网站:点击访问星梦云官网活动方案:1、成都电信年中活动机(封锁UDP,不可解封):机房CPU内存硬盘带宽IP防护流量原价活动价开通方式成都电信优化线路4vCPU4G40G+50...

handlersocket为你推荐
ae序列号安装AE,序列号是什么意思?动态图片格式动态图片什么格式怎么用电脑发短信怎么样用电脑给手机发短信?webservice框架如何用webservice 的cxf框架webservice框架什么是webservice,什么情况下使用,如何使用java程序员招聘★JAVA软件工程师工资待遇怎样防火墙技术应用在网络支付流程中,防火墙技术与数据加密技术应用则重点有什么不同?在线沟通什么是在线状态?泛微协同办公系统泛微软件怎么样?做协同办公的,我要来这做销售前景怎么样?请大家对这个行业或公司了解的给些建议。flash序列号急求flash序列号
域名估价 linuxvps 域名服务器上存放着internet主机的 naning9韩国官网 68.168.16.150 php探针 网站实时监控 个人免费空间 100m空间 爱奇艺会员免费试用 域名dns 域名与空间 论坛主机 个人免费邮箱 godaddy空间 umax 北京主机托管 paypal登陆 qq部落24-5 隐士ddos 更多