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

半月湾hmbcloud升级500Mbps带宽,原生VPS,$4.99/月

关于半月湾HMBCloud商家之前也有几篇那文章介绍过这个商家的产品,对于他们家的其他产品我都没有多加留意,而是对他们家的DC5机房很多人还是比较喜欢的,这个比我们有些比较熟悉的某商家DC6 DC9机房限时,而且半月湾HMBCloud商家是相对便宜的。关于半月湾DC5机房的方案选择和介绍:1、半月湾三网洛杉矶DC5 CN2 GIA同款DC6 DC9 1G内存 1TB流量 月$4.992、亲测选择半...

cera:秋季美国便宜VPS促销,低至24/月起,多款VPS配置,自带免费Windows

介绍:819云怎么样?819云创办于2019,由一家从2017年开始从业的idc行业商家创办,主要从事云服务器,和物理机器819云—-带来了9月最新的秋季便宜vps促销活动,一共4款便宜vps,从2~32G内存,支持Windows系统,…高速建站的美国vps位于洛杉矶cera机房,服务器接入1Gbps带宽,采用魔方管理系统,适合新手玩耍!官方网站:https://www.8...

德阳电信高防物理机 16核16G 50M 260元/月 达州创梦网络

达州创梦网络怎么样,达州创梦网络公司位于四川省达州市,属于四川本地企业,资质齐全,IDC/ISP均有,从创梦网络这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,一手四川托管服务商,成都优化线路,机柜租用、服务器云服务器租用,适合建站做游戏,不须要在套CDN,全国访问快,直连省骨干,大网封UDP,无视UDP攻击,机房集群高达1.2TB,单机可提供1...

handlersocket为你推荐
4k超高清视频下载哪里有4K片源下载啊?补充:刚入手了一个4k电视盒,小美盒子V9,说是支持4k。正好我的电视机是4k的,想知道哪里有得下载呢?有朋友说我傻,现在基本上没有4k片源下载,而且不知道什么时候才有。等到流行的时候也许这个机器又淘汰啦!我该怎么办啊?prisma安卓版Prisma安卓版能不能用wow服务器状态我电脑上的魔兽服务器状态很好.但是还是玩不起来.请问可以玩了不?netbios协议tcp/ip、ipx/spx、netbios这三个通信协议的区别云输入法QQ云输入法怎样调整候选词的个数?怎么查微信注册时间微信号用了多久,怎么知道flash序列号求flash的序列号空间导航怎么设置QQ空间个性导航validdate怎样解决oracle报错is not a valid date and time100days英文的一百天怎么说
域名中介 传奇服务器租用 windows虚机 免费国际域名 万网域名管理 directspace wavecom edis 视频存储服务器 线路工具 一元域名 dd444 linux空间 ftp免费空间 新世界服务器 江苏双线服务器 万网主机管理 西安服务器托管 帽子云排名 域名转入 更多