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的使用比较广泛的协议,早期的手机端推送为了省事就用的这种协议,但是后来发现这种协议比较臃肿耗流量,而且对服务器要求比较高

Ceraus24元/月,国庆促销 香港云上新首月五折

Ceraus数据成立于2020年底,基于KVM虚拟架构技术;主营提供香港CN2、美国洛杉矶CN2、日本CN2的相关VPS云主机业务。喜迎国庆香港上新首月五折不限新老用户,cera机房,线路好,机器稳,适合做站五折优惠码:gqceraus 续费七五折官方网站:https://www.ceraus.com香港云内存​CPU硬盘流量宽带优惠价格购买地址香港云2G2核40G不限5Mbps24元/月点击购买...

Ceranetworks顶级合作伙伴 香港E3 16G 299元 香港E5 32G 650元 美国E3 16G 650元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

digital-vm:VPS低至$4/月,服务器$80/月,10Gbps超大带宽,不限流量,机房可选:日本新加坡美国英国西班牙荷兰挪威丹麦

digital-vm,这家注册在罗马尼亚的公司在国内应该有不少人比较熟悉了,主要提供VPS业务,最高10Gbps带宽,还不限制流量,而且还有日本、新加坡、美国洛杉矶、英国、西班牙、荷兰、挪威、丹麦这些可选数据中心。2020年,digital-vm新增了“独立服务器”业务,暂时只限“日本”、“新加坡”机房,最高也是支持10Gbps带宽... 官方网站:https://digital-vm.co...

handlersocket为你推荐
中国万维网中国互联网的历史是怎样的呢?什么时候开始的呢?南宁虚拟空间请问虚拟空间在哪里买?离线包离线地图,离线导航包有什么区别存储区域网络什么是存储局域网?组建它需要哪些内容?sms是什么短信验证是什么?动画分镜头脚本请问什么是动画分镜头脚本,什么是电影分镜头脚本以及什么是广告分镜头脚本?ocr软件下载哪个图片转文字软件比较好用?怎样删除聊天记录自己已发出的微信聊天记录怎样删除才不会让对方看见元宝汇传奇续章开了几个区?飞信发信息要钱吗用飞信发短信要钱吗?
域名申请 便宜vps GGC siteground linkcloud 国外私服 typecho 轻量 炎黄盛世 有奖调查 seednet 速度云 申请网页 卡巴斯基是免费的吗 中国电信宽带测速器 江苏双线服务器 月付空间 2016黑色星期五 hosting WHMCS 更多