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

轻云互联(19元)香港高防云服务器 ,美国云服务器

轻云互联成立于2018年的国人商家,广州轻云互联网络科技有限公司旗下品牌,主要从事VPS、虚拟主机等云计算产品业务,适合建站、新手上车的值得选择,香港三网直连(电信CN2GIA联通移动CN2直连);美国圣何塞(回程三网CN2GIA)线路,所有产品均采用KVM虚拟技术架构,高效售后保障,稳定多年,高性能可用,网络优质,为您的业务保驾护航。活动规则:用户购买任意全区域云服务器月付以上享受免费更换IP服...

易探云韩国云服务器仅50元/月,510元/年起

韩国云服务器哪个好?韩国云服务器好用吗?韩国是距离我国很近的一个国家,很多站长用户在考虑国外云服务器时,也会将韩国云服务器列入其中。绝大部分用户都是接触的免备案香港和美国居多,在加上服务器确实不错,所以形成了习惯性依赖。但也有不少用户开始寻找其它的海外免备案云服务器,比如韩国云服务器。下面云服务器网(yuntue.com)就推荐最好用的韩国cn2云服务器,韩国CN2云服务器租用推荐。为什么推荐租用...

GreenCloudVPS($30/年),500G大硬盘VPS,10Gbps带宽

GreenCloudVPS最近在新加坡DC2节点上了新机器,Dual Xeon Silver 4216 CPU,DDR4内存,10Gbps网络端口,推出了几款大硬盘VPS套餐,基于KVM架构,500GB磁盘起年付30美元。除了大硬盘套餐外,还加推了几款采用NVMe硬盘的常规套餐,最低年付20美元。不过需要提醒的是,机房非直连中国,尤其是电信用户ping值感人,包括新加坡DC1也是如此。大硬盘VPS...

handlersocket为你推荐
prisma安卓版prisma 安卓版本为什么不能使用代发邮件邮件代发会不会有短信代发那么好的市场效益呢?暴力破解rar求暴力破解rar压缩包软件sdfsdfsdfsdf世界上最大的一块金砖有多重?erp系统教程ERP系统怎样操作,有教学视频吗?gbk内码Gbk内码查询怎么查微信注册时间微信号用了多久,怎么知道btest进入北大青鸟需要什么学历呢flushes翻譯下面的日記西安娱乐西安最高端会所是哪一家
海外服务器租用 域名抢注 域名服务dns的主要功能为 新网域名管理 smartvps 踢楼 vultr美国与日本 webhosting sockscap howfile gspeed 工作站服务器 空间合租 论坛主机 全能空间 摩尔庄园注册 阿里云邮箱申请 阿里云邮箱怎么注册 架设代理服务器 美国服务器 更多