用Java语言中的socket编程实现jsp页面与网关的链接并且不间断发送控制数据

        其实写这篇文章还是源于和师兄一起做一个用Java语言与网关链接从而间接控制路灯亮度的一个项目,其实网上有很多的socket编程的教程,我只针对连续发送数据这点写一点简单的代码希望能对大家有所帮助!

第一步:

        封装一个socket编程的类名字叫SocUtil,其中有两个方法,一个是start方法(此方法是开启socket服务端并进行监听),另外一个是input方法(此方法是向输出流中输入整形数组的数据)简单代码如下:

public class SocUtil {
static ServerSocket serverSocket;
static Socket socket;
//下面的是创建链接,并进行监听
public static void start(){
try {
serverSocket = new ServerSocket(50000);//指定端口号
socket = serverSocket.accept();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

//下面的是向输出流中输入信息
public static void input(int information[]){//服务器向客户端发送数据
try {
OutputStream outputStream=socket.getOutputStream();
//得到向客户端的输出流
for(int i=0;i<information.length;i++){
outputStream.write(information[i]);
}
} catch (IOException e) {
e.printStackTrace();
}
}}

第二步:

配置servlet,在dopost方法中进行数据的处理,代码如下:

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String inform=request.getParameter("controlamp");

String suminform="";
suminform+=inform;
String str[]=suminform.split(" ");
int arr[]=new int[str.length];
for(int i=0;i<str.length;i++){
BigInteger fordate=new BigInteger(str[i], 16);
arr[i]=fordate.intValue();
}
SocUtil.input(arr);

}
}

在上面的编程中第二步实现的功能是从页面中将16进制类型的字符串转化为整形数组,从而实现连续发送整形数组的功能,这样编程的好处是socket编程不会链接中断,以往的socket编程都是用while循环,但这种类型的编程搬到页面上就会遇到很多困难,希望我的编程方式能给那些用网页进行socket编程的朋友带去一些帮助,也希望大家提出意见,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值