我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java中怎么利用Socket实现一个通讯客户端

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java中怎么利用Socket实现一个通讯客户端

本篇文章给大家分享的是有关Java中怎么利用Socket实现一个通讯客户端,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

具体客户端代码如下:

  1. import java.net.*;  

  2. import java.io.*;  

  3. import org.apache.log4j.Logger;  

  4. public class SocketClient {  

  5. static Logger log = Logger.getLogger(SocketClient.class.
    getName()); //日志记录信息  

  6. private String hostName;  

  7. private int portNum;  

  8. private int delaySecond; // 发文接收返回报文延时  

  9. public SocketClient() {  

  10. this.hostName = "192.168.0.1";  

  11. this.portNum = 7000;  

  12. this.delaySecond = 50000;  

  13. pFileOp = null;  

  14. }  

  15. private Socket getSocket() {  

  16. Socket socket = null;  

  17. try {  

  18. socket = new Socket(hostName, portNum);  

  19. } catch (UnknownHostException e) {  

  20. System.out.println("-->未知的主机名:" + hostName + " 异常");  

  21. } catch (IOException e) {  

  22. System.out.println("-hostName=" + hostName + " portNum="  

  23. + portNum + "---->IO异常错误" + e.getMessage());  

  24. }  

  25. return socket;  

  26. }  

  27. public String sendMessage(String strMessage) {  

  28. String str = "";  

  29. String serverString = "";  

  30. Socket socket;  

  31. try {  

  32. socket = getSocket();  

  33. // socket.setKeepAlive(true);  

  34. if (socket == null) { // 未能得到指定的Socket对象,Socket通讯为空  

  35. return "0001";  

  36. }  

  37. PrintWriter out = new PrintWriter(socket.getOutputStream());  

  38. //log.info("---->发送报文="+strMessage);  

  39. out.println(strMessage);  

  40. out.flush();  

  41. BufferedReader in = new BufferedReader(new InputStreamReader(  

  42. socket.getInputStream()));  

  43. long sendTime = System.currentTimeMillis();  

  44. long receiveTime = System.currentTimeMillis();  

  45. boolean received = false; // 成功接收报文  

  46. boolean delayTooLong = false;  

  47. serverString = null;  

  48. while (!received && !delayTooLong) {  

  49. if (socket.getInputStream().available() > 0) {  

  50. // serverString = in.readLine();  

  51. char tagChar[];  

  52. tagChar = new char[1024];  

  53. int len;  

  54. String temp;  

  55. String rev = "";  

  56. if ((len = in.read(tagChar)) != -1) {  

  57. temp = new String(tagChar, 0, len);  

  58. rev += temp;  

  59. temp = null;  

  60. }  

  61. serverString = rev;  

  62. }  

  63. receiveTime = System.currentTimeMillis();  

  64. if (serverString != null)  

  65. received = true; // 字符串不为空,接收成功  

  66. if ((receiveTime - sendTime) > delaySecond)  

  67. delayTooLong = true; // 接收等待时间过长,超时  

  68. }  

  69. in.close();  

  70. out.close();  

  71. str=serverString;  

  72. if (delayTooLong) str="2190"; //超时标志为真,返回超时码  

  73. if (!received) str ="2190";  

  74. socket.close();  

  75. } catch (UnknownHostException e) {  

  76. log.error("---->出现未知主机错误! 主机信息=" + this.hostName + 
    " 端口号="  

  77. + this.portNum + " 出错信息=" + e.getMessage());  

  78. str = "2191";  

  79. // System.exit(1);  

  80. } catch (IOException e) {  

  81. log.error("---->出现IO异常! 主机信息=" + this.hostName + 
    " 端口号="  

  82. + this.portNum + " 出错信息=" + e.getMessage());  

  83. e.printStackTrace();  

  84. str = "2191";  

  85. } catch (Exception e) {  

  86. str="2177";  

  87. log.error("---->出现未知异常" + e.getMessage());  

  88. } finally {  

  89. socket = null;  

  90. str.trim();  

  91. //log.info("--->返回的socket通讯字符串="+str);  

  92. return str;  

  93. }  

  94. }  

以上就是Java中怎么利用Socket实现一个通讯客户端,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java中怎么利用Socket实现一个通讯客户端

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Java中怎么利用Socket实现一个通讯客户端

本篇文章给大家分享的是有关Java中怎么利用Socket实现一个通讯客户端,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。具体客户端代码如下:import java.net.*;
2023-06-17

Java中怎么实现一个Socket通讯客户端

Java中怎么实现一个Socket通讯客户端,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java Socket通讯代码
2023-06-17

「Java」Socket实现简单的客户端和服务端通讯 | 公网环境通讯

💛前情提要💛 本章节是番外篇的Socket的相关知识~ 接下来我们即将进入一个全新的空间,对代码有一个全新的视角~ 以下的内容一定会让你对Socket有一个颠覆性的认识哦!!! 以下内容干货满满,跟上步伐吧~
2023-08-18

怎么在java中使用SocketChannel实现一个客户端

怎么在java中使用SocketChannel实现一个客户端?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。常用的java框架有哪些1.SpringMVC,Spr
2023-06-14

Java 中怎么实现多客户端通信

今天就跟大家聊聊有关Java 中怎么实现多客户端通信,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。来看服务端的代码:import java.net.*; import java.
2023-06-17

Java中怎么利用HBase实现客户端编程

这篇文章将为大家详细讲解有关Java中怎么利用HBase实现客户端编程,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. 准备工作下载后安装jdk包(这里使用的是jdk-6u10-rc2-b
2023-06-17

Java编程Socket如何实现多个客户端连接同一个服务端

这篇文章主要介绍Java编程Socket如何实现多个客户端连接同一个服务端,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Java Socket(套接字)通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄
2023-05-30

C#中怎么利用Socket实现异步通讯

这篇文章将为大家详细讲解有关C#中怎么利用Socket实现异步通讯,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C# Socket异步通讯客户端之主程序:using System;using
2023-06-17

Android Socket怎么实现多个客户端聊天布局

这篇“Android Socket怎么实现多个客户端聊天布局”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android S
2023-06-30

Socket结合线程池怎么实现客户端和服务端通信demo

本篇内容主要讲解“Socket结合线程池怎么实现客户端和服务端通信demo”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Socket结合线程池怎么实现客户端和服务端通信demo”吧!1、要求可以
2023-06-29

怎么在C#中使用MJPEG实现一个客户端功能

怎么在C#中使用MJPEG实现一个客户端功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。环境:服务端MJPEG服务器使用的是手机的DroidCam,很方便的一个MJPEG服务
2023-06-06

Java聊天室之实现一个服务器与多个客户端通信

这篇文章主要为大家详细介绍了Java简易聊天室之实现一个服务器与多个客户端通信,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以了解一下
2022-11-13

Silverlight中怎么利用Socket实现通信

这篇文章将为大家详细讲解有关Silverlight中怎么利用Socket实现通信,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一.Silverlight的Socket通信和控制台、WinFo
2023-06-17

C#中怎么实现服务端与客户端通信

C#中怎么实现服务端与客户端通信,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。C#服务端与客户端通信实现实例:TcpClient client; for (
2023-06-17

如何利用java实现一个客户信息管理系统

这篇文章将为大家详细讲解有关如何利用java实现一个客户信息管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。类图:Customer类:public class Customer { /**
2023-06-14

怎么使用linux socket实现服务器和客户端对话

本文小编为大家详细介绍“怎么使用linux socket实现服务器和客户端对话”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用linux socket实现服务器和客户端对话”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
2023-05-25

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录