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

wordpress外贸企业主题 wordpress高级全行业大气外贸主题

wordpress高级全行业大气外贸主题,wordpress通用全行业高级外贸企业在线询单自适应主题建站程序,完善的外贸企业建站功能模块 + 高效通用的后台自定义设置,更实用的移动设备特色功能模块 + 更适于欧美国外用户操作体验 大气简洁的网站风格设计 + 高效优化的网站程序结构,更利于Goolge等SEO搜索优化和站点收录排名。点击进入:wordpress高级全行业大气外贸主题主题价格:¥398...

飞讯云E5-2678V3 64GB,湖北十堰100G高防物理机330元/月

飞讯云官网“飞讯云”是湖北飞讯网络有限公司旗下的云计算服务品牌,专注为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。飞讯云是国内为数不多具有ISP/IDC双资质的专业云计算服务商,同时持有系统软件著作权证书、CNNIC地址分配联盟成员证书,通过了ISO27001信息安全管理体系国际认证、ISO9001质量保证体系国际认证。 《中华...

ZJI-全场八折优惠,香港服务器 600元起,还有日本/美国/韩国服务器

ZJI怎么样?ZJI是一家成立于2011年的商家,原名维翔主机,主要从事独立服务器产品销售,目前主打中国香港、日本、美国独立服务器产品,是一个稳定、靠谱的老牌商家。详情如下:月付/年付优惠码:zji??下物理服务器/VDS/虚拟主机空间订单八折终身优惠(长期有效)一、ZJI官网点击直达香港葵湾特惠B型 CPU:E5-2650L核心:6核12线程内存:16GB硬盘:480GB SSD带宽:5Mbps...

handlersocket为你推荐
订房系统求酒店开房系统createfile失败惠普机看机提示create file fail 无法进桌面怎么用电脑发短信怎么样用电脑给手机发短信?上行宽带上行宽带是什么?网络安全密钥网络安全密钥一般是什么za是哪个国家的奥洛菲是哪个国家的在线沟通什么是在线状态?泛微协同办公系统谁能告诉我泛微OA,协同性是体现在哪几个方面的?泛微有哪些优势??空间导航怎么设置QQ空间个性导航短信套餐手机短信都有什么套餐
vps试用 重庆虚拟主机 互联网域名管理办法 virpus 狗爹 kdata tier 新站长网 浙江独立 小米数据库 百兆独享 合租空间 cdn联盟 爱奇艺vip免费领取 酷番云 购买国外空间 空间购买 网通服务器 重庆电信服务器托管 789 更多