首页 > Java > java教程 > 正文

Java利用Socket实现通讯客户端的代码怎么写

PHPz
发布: 2023-04-25 08:52:06
转载
1277人浏览过

具体客户端代码如下:

<ol class=" list-paddingleft-2" ><li><p>import java.net.*;  </p></li><li><p>import java.io.*;  </p></li><li><p>import org.apache.log4j.Logger;  </p></li><li><p>public class SocketClient {  </p></li><li><p>static Logger log = Logger.getLogger(SocketClient.class.<br/>getName()); //日志记录信息  </p><p><span>立即学习</span>“<a href="https://pan.quark.cn/s/c1c2c2ed740f" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">Java免费学习笔记(深入)</a>”;</p></li><li><p>private String hostName;  </p></li><li><p>private int portNum;  </p></li><li><p>private int delaySecond; // 发文接收返回报文延时  </p></li><li><p>public SocketClient() {  </p></li><li><p>this.hostName = "192.168.0.1";  </p></li><li><p>this.portNum = 7000;  </p></li><li><p>this.delaySecond = 50000;  </p></li><li><p>pFileOp = null;  </p></li><li><p>}  </p></li><li><p>private Socket getSocket() {  </p></li><li><p>Socket socket = null;  </p></li><li><p>try {  </p></li><li><p>socket = new Socket(hostName, portNum);  </p></li><li><p>} catch (UnknownHostException e) {  </p></li><li><p>System.out.println("-->未知的主机名:" + hostName + " 异常");  </p></li><li><p>} catch (IOException e) {  </p></li><li><p>System.out.println("-hostName=" + hostName + " portNum="  </p></li><li><p>+ portNum + "---->IO异常错误" + e.getMessage());  </p></li><li><p>}  </p></li><li><p>return socket;  </p></li><li><p>}  </p></li><li><p>public String sendMessage(String strMessage) {  </p></li><li><p>String str = "";  </p></li><li><p>String serverString = "";  </p></li><li><p>Socket socket;  </p></li><li><p>try {  </p></li><li><p>socket = getSocket();  </p></li><li><p>// socket.setKeepAlive(true);  </p></li><li><p>if (socket == null) { // 未能得到指定的Socket对象,Socket通讯为空  </p></li><li><p>return "0001";  </p></li><li><p>}  </p></li><li><p>PrintWriter out = new PrintWriter(socket.getOutputStream());  </p></li><li><p>//log.info("---->发送报文="+strMessage);  </p></li><li><p>out.println(strMessage);  </p></li><li><p>out.flush();  </p></li><li><p>BufferedReader in = new BufferedReader(new InputStreamReader(  </p></li><li><p>socket.getInputStream()));  </p></li><li><p>long sendTime = System.currentTimeMillis();  </p></li><li><p>long receiveTime = System.currentTimeMillis();  </p></li><li><p>boolean received = false; // 成功接收报文  </p></li><li><p>boolean delayTooLong = false;  </p></li><li><p>serverString = null;  </p></li><li><p>while (!received && !delayTooLong) {  </p>
                    <div class="aritcle_card">
                        <a class="aritcle_card_img" href="/xiazai/code/4999">
                            <img src="https://img.php.cn/upload/webcode/000/000/000/5b14ce4ea77a8167.jpg" alt=" v1.1.6若依管理系统">
                        </a>
                        <div class="aritcle_card_info">
                            <a href="/xiazai/code/4999"> v1.1.6若依管理系统</a>
                            <p>一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS,CRM,OA。所有前端后台代码封装过后十分精简易上手,出错效率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。

您是否在找一套合适后台管理系统。
您是否在找一套代码易读易懂后台</p>
                            <div class="">
                                <img src="/static/images/card_xiazai.png" alt=" v1.1.6若依管理系统">
                                <span>885</span>
                            </div>
                        </div>
                        <a href="/xiazai/code/4999" class="aritcle_card_btn">
                            <span>查看详情</span>
                            <img src="/static/images/cardxiayige-3.png" alt=" v1.1.6若依管理系统">
                        </a>
                    </div>
                </li><li><p>if (socket.getInputStream().available() > 0) {  </p></li><li><p>// serverString = in.readLine();  </p></li><li><p>char tagChar[];  </p></li><li><p>tagChar = new char[1024];  </p></li><li><p>int len;  </p></li><li><p>String temp;  </p></li><li><p>String rev = "";  </p></li><li><p>if ((len = in.read(tagChar)) != -1) {  </p></li><li><p>temp = new String(tagChar, 0, len);  </p></li><li><p>rev += temp;  </p></li><li><p>temp = null;  </p></li><li><p>}  </p></li><li><p>serverString = rev;  </p></li><li><p>}  </p></li><li><p>receiveTime = System.currentTimeMillis();  </p></li><li><p>if (serverString != null)  </p></li><li><p>received = true; // 字符串不为空,接收成功  </p></li><li><p>if ((receiveTime - sendTime) > delaySecond)  </p></li><li><p>delayTooLong = true; // 接收等待时间过长,超时  </p></li><li><p>}  </p></li><li><p>in.close();  </p></li><li><p>out.close();  </p></li><li><p>str=serverString;  </p></li><li><p>if (delayTooLong) str="2190"; //超时标志为真,返回超时码  </p></li><li><p>if (!received) str ="2190";  </p></li><li><p>socket.close();  </p></li><li><p>} catch (UnknownHostException e) {  </p></li><li><p>log.error("---->出现未知主机错误! 主机信息=" + this.hostName + <br/>" 端口号="  </p></li><li><p>+ this.portNum + " 出错信息=" + e.getMessage());  </p></li><li><p>str = "2191";  </p></li><li><p>// System.exit(1);  </p></li><li><p>} catch (IOException e) {  </p></li><li><p>log.error("---->出现IO异常! 主机信息=" + this.hostName + <br/>" 端口号="  </p></li><li><p>+ this.portNum + " 出错信息=" + e.getMessage());  </p></li><li><p>e.printStackTrace();  </p></li><li><p>str = "2191";  </p></li><li><p>} catch (Exception e) {  </p></li><li><p>str="2177";  </p></li><li><p>log.error("---->出现未知异常" + e.getMessage());  </p></li><li><p>} finally {  </p></li><li><p>socket = null;  </p></li><li><p>str.trim();  </p></li><li><p>//log.info("--->返回的socket通讯字符串="+str);  </p></li><li><p>return str;  </p></li><li><p>}  </p></li><li><p>}  </p></li><li><p>} </p></li></ol>
登录后复制

以上就是Java利用Socket实现通讯客户端的代码怎么写的详细内容,更多请关注php中文网其它相关文章!

相关标签:
java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:亿速云网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号