Java的socket连接以及string字符串长度过长解决
一、socket连接服务:
1.客户端:Java
package cn.lw;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;import com.alibaba.fastjson.JSONObject;public class SocketServer {public void StartServer() {ServerSocket serverSocket=null;try {serverSocket=new ServerSocket(8998);System.out.println("服务端启动。。。。。。");while(true) {Socket socket=serverSocket.accept();//socket服务端接入启动new Thread(new MyRuns(socket)).start();//新建线程启动运行socket}} catch (Exception e) {e.printStackTrace();} finally {try {if(serverSocket!=null) {serverSocket.close();}}catch (Exception e) {e.printStackTrace();}}}class MyRuns implements Runnable{Socket socket;BufferedReader reader;BufferedWriter writer;public MyRuns(Socket socket) {super();this.socket=socket;}@Overridepublic void run() {try {reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));writer=new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));String lineString=null;String cloud="";while((lineString=reader.readLine())!=null) {cloud+=lineString;}System.out.println("接收客户端消息:"+cloud);JSONObject jsonObject=new JSONObject();//json对象服务器发送数据jsonObject.put("success", true);jsonObject.put("Object", "{数据集合以,隔开}");writer.write(jsonObject.toJSONString());writer.flush();} catch (Exception e) {e.printStackTrace();}finally {try {if(reader!=null) {reader.close();}if(writer!=null) {writer.close();}if(socket!=null) {socket.close();}} catch (Exception e2) {e2.printStackTrace();}}}}public static void main(String[] args) {SocketServer server=new SocketServer();server.StartServer();}
}
2.客户端:Java代码
package cn.lw;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;public class SocketClient {public static void main(String[] args) {System.out.println("客户端执行。。。");getData(new byte[0]);}/*** socket连接的建立* @return*/public static String getData(byte[] bs) {BufferedReader br = null;InputStream ins = null;BufferedWriter pw = null;OutputStream os = null;Socket sk = null ;try{String address = "localhost";//IP地址int port = 18000;//端口sk = new Socket(address,port);//建立连接os = sk.getOutputStream();//向服务器发送数据pw = new BufferedWriter(new OutputStreamWriter(os));pw.write("{ \"img\": \""+bs+"\" }");//数据以JSON格式发送pw.flush();sk.shutdownOutput();ins = sk.getInputStream();//从服务器获取数据br = new BufferedReader(new InputStreamReader(ins));String str = null ;StringBuffer sb = new StringBuffer();//数据存储位置while((str = br.readLine()) !=null){sb.append(str);}System.out.println("接收服务端返回消息:"+sb);return "success";}catch(IOException e){e.printStackTrace();}finally{try {br.close();pw.close();ins.close();br.close();if(null != sk) {sk.close(); }} catch (IOException e) {e.printStackTrace();} }return "";}
}
3.Java中string字符串长度过长解决办法
//通过stringbuild分割加入
StringBuilder sb = new StringBuilder();
sb.append(文本的一部分);
sb.append(文本剩下的一部分);
.....
String str = sb.toString();
此时可以对str进行操作
System.out.printLn(str);
Java的socket连接以及string字符串长度过长解决相关推荐
- Java String字符串长度不足指定位数补0
Java String字符串长度不足指定位数补0 自己项目中有个需求:需要5位随机数-范围在1-99999 随机数可以利用Random()来获取,但是想要生成的随机数都是5位数,那就需要做一点小处理啦 ...
- java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据
全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现socket连接,向指定主机指定端口发送socket数据,并获取响应数据 测试代码 public static void main(S ...
- java使用socket连接4G DTU设备发短信
java使用socket连接4G DTU设备发短信测试Demo import java.io.IOException; import java.io.OutputStream; import java ...
- java面试题,将String字符串转换成数字
2019独角兽企业重金招聘Python工程师标准>>> 题目要求:将String字符串转换成数字,不能用java自带的方法转换字符串,要求自己写一个atoi(String s),如果 ...
- JAVA进阶开发之(String字符串的存储原理)
我们现在开始学习的就是一些工具类 这些工具类只需要我们学会查阅帮助文档进行开发就可以实现很多功能 例如:我们查看工具类String 关于java JDK中内置的一个类:java.lang.String ...
- C++ 获取string字符串长度的三种方法
1.用string的成员方法length()获取字符串长度 length()比较直观,表示的就是该字符串的长度. #include <string> #include <iostre ...
- java使用replace方法修改String字符串内容不起作用
今天写代码的时候使用replace方法进行string字符串元素的替换,刚开始的写法如下: String a = "hellp"; a.replace("p", ...
- PHP 字符串长度截取 之 解决微信消息字数限制
说明:在微信发送消息的时候出现的问题 => 字数超出限制,导致服务器报错. 解决:加一个判断语句... 具体了解:https://zhidao.baidu.com/question/173276 ...
- java clob内存溢出_java - java.sql.SQLException:ORA-01704:字符串文字太长时插入或更新 - 堆栈内存溢出...
通常,当我插入4000个字符限制时,它的工作正常,但当超过4000个字符时,它抛出SQL异常字符串文字太长,即使我的DISCHARGE_TEXT数据类型是CLOB 我的JavaScript代码是 fu ...
最新文章
- iOS UITextView 随键盘弹出界面上移
- Gitlab+Jenkins学习之路(三)之gitlab权限管理--issue管理
- HTML5语义化标签综合基础案例,HTML5语义化标签综合案例
- 洛谷3384(树链剖分模板题)
- 【强化学习】PPO代码注释版本
- android sd卡 格式化 rom,Android开发之获取SD卡及手机ROM容量的方法
- Mybatis动态sql的使用
- java游戏西门大官人_valueOf()方法的使用
- Net-Snmp安装配置
- 给 Python 添加进度条 | 给小白的 tqdm 精炼实例!
- 书柜的尺寸(bzoj 1933)
- 超声波传感器测距报警器
- 万历名士袁宏道的自在人生——独抒性灵,不拘格套
- 【控制篇 / 应用】(5.6) ❀ 01. NGFW 模式下使用应用控制 ❀ FortiGate 防火墙
- 魔兽世界称全球玩家达1150万
- Python 利用pandas 获取Excel重复记录
- EDA程序设计--数字日历电路
- IDEA输入字母间距变大报红
- Android.mk文件语法规范及使用模板
- 计算机页面排版的笔记,推荐6种简单实用的手绘笔记排版