日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java监听某端口和ip_Java 通过Socket监听指定服务器(IP)的指定端口,及向指定服务器的指定端口发送信息...

發(fā)布時(shí)間:2024/10/5 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java监听某端口和ip_Java 通过Socket监听指定服务器(IP)的指定端口,及向指定服务器的指定端口发送信息... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

客戶端:向指定端口發(fā)送信息

package com.jszc.lottery.modules.longpay.util;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;

import com.jszc.lottery.common.utils.MakeOrderNumUtil;

public class RECV_UBANKNO {

public String go(String xmlInfo) throws UnknownHostException, IOException {

// 向服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器IP地址和服務(wù)器監(jiān)聽的端口號(hào)

Socket client = new Socket("192.168.1.125", 12345);

// 通過(guò)printWriter 來(lái)向服務(wù)器發(fā)送消息

PrintWriter printWriter = new PrintWriter(client.getOutputStream());

System.out.println("連接已建立...");

// 發(fā)送消息

printWriter.println(xmlInfo);

printWriter.flush();

// InputStreamReader是低層和高層串流之間的橋梁

// client.getInputStream()從Socket取得輸入串流

InputStreamReader streamReader = new InputStreamReader(client.getInputStream());

// 鏈接數(shù)據(jù)串流,建立BufferedReader來(lái)讀取,將

//BufferReader鏈接到InputStreamReder

BufferedReader reader = new BufferedReader(streamReader);

String advice = reader.readLine();

reader.close();

return advice;

}

public static void main(String[] args) throws UnknownHostException,IOException {

StringBuilder sb = new StringBuilder();

sb.append("balabala");

// 提交請(qǐng)求

String utf8 = new String(sb.toString().getBytes("UTF-8"));

String unicode = new String(utf8.getBytes(), "UTF-8");

String gbk = new String(unicode.getBytes("GB2312"));

// String xml = new String();//GB18030

RECV_UBANKNO c = new RECV_UBANKNO();

String advice = c.go(gbk);

System.out.println("接收到服務(wù)器的消息 :" + advice);

}

}

package com.jszc.lottery.modules.longpay.util;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.net.UnknownHostException;

import com.jszc.lottery.common.utils.MakeOrderNumUtil;

public class RECV_UBANKNO {

public String go(String xmlInfo) throws UnknownHostException, IOException {

// 向服務(wù)器端發(fā)送請(qǐng)求,服務(wù)器IP地址和服務(wù)器監(jiān)聽的端口號(hào)

Socket client = new Socket("192.168.1.125", 12345);

// 通過(guò)printWriter 來(lái)向服務(wù)器發(fā)送消息

PrintWriter printWriter = new PrintWriter(client.getOutputStream());

System.out.println("連接已建立...");

// 發(fā)送消息

printWriter.println(xmlInfo);

printWriter.flush();

// InputStreamReader是低層和高層串流之間的橋梁

// client.getInputStream()從Socket取得輸入串流

InputStreamReader streamReader = new InputStreamReader(

client.getInputStream());

// 鏈接數(shù)據(jù)串流,建立BufferedReader來(lái)讀取,將BufferReader鏈接到InputStreamReder

BufferedReader reader = new BufferedReader(streamReader);

String advice = reader.readLine();

reader.close();

return advice;

}

public static void main(String[] args) throws UnknownHostException,

IOException {

// 拼接xml報(bào)文

/*

* * 請(qǐng)求序列碼 客戶號(hào)

* 操作員號(hào) 密碼

* 6W0201 CN *

*/

StringBuilder sb = new StringBuilder();

MakeOrderNumUtil makeOrderNumUtil = new MakeOrderNumUtil();

makeOrderNumUtil.makeOrderNum();

String num = makeOrderNumUtil.makeOrderNum();

sb.append(" ");

sb.append("");

sb.append("" + num + "");// 請(qǐng)求序列碼

sb.append("ZJ33000009175763101");// 客戶號(hào)

sb.append("WLPT01");// 操作員號(hào)

sb.append("123456");// 密碼

sb.append("6W0201");// 交易請(qǐng)求碼

sb.append("CN ");// 語(yǔ)言

sb.append("");

sb.append("");

sb.append("");

// 提交請(qǐng)求

/*

* 4、發(fā)送報(bào)文兼容GB2312和GB18030編碼格式,返回報(bào)文為GB18030編碼格式,

* 另需要測(cè)試一下發(fā)送報(bào)文編碼格式為GB18030的情況下交易是否OK。

*/

String utf8 = new String(sb.toString().getBytes("UTF-8"));

String unicode = new String(utf8.getBytes(), "UTF-8");

String gbk = new String(unicode.getBytes("GB2312"));

// String xml = new String();//GB18030

RECV_UBANKNO c = new RECV_UBANKNO();

String advice = c.go(gbk);

System.out.println("接收到服務(wù)器的消息 :" + advice);

}

}

服務(wù)器端,監(jiān)聽指定端口:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

public class SocketService {

//搭建服務(wù)器端

public static void main(String[] args) throws IOException{

SocketService socketService = new SocketService();

//1、a)創(chuàng)建一個(gè)服務(wù)器端Socket,即SocketService

socketService.oneServer();

}

public void oneServer(){

try{

ServerSocket server=null;

try{

server=new ServerSocket(12347);

//b)指定綁定的端口,并監(jiān)聽此端口。

System.out.println("服務(wù)器啟動(dòng)成功");

//創(chuàng)建一個(gè)ServerSocket在端口5209監(jiān)聽客戶請(qǐng)求

}catch(Exception e) {

System.out.println("沒(méi)有啟動(dòng)監(jiān)聽:"+e);

//出錯(cuò),打印出錯(cuò)信息

}

Socket socket=null;

try{

socket=server.accept();

//2、調(diào)用accept()方法開始監(jiān)聽,等待客戶端的連接

//使用accept()阻塞等待客戶請(qǐng)求,有客戶

//請(qǐng)求到來(lái)則產(chǎn)生一個(gè)Socket對(duì)象,并繼續(xù)執(zhí)行

}catch(Exception e) {

System.out.println("Error."+e);

//出錯(cuò),打印出錯(cuò)信息

}

//3、獲取輸入流,并讀取客戶端信息

String line;

BufferedReader in=new BufferedReader(new InputStreamReader(socket.getInputStream()));

//由Socket對(duì)象得到輸入流,并構(gòu)造相應(yīng)的BufferedReader對(duì)象

PrintWriter writer=new PrintWriter(socket.getOutputStream());

//由Socket對(duì)象得到輸出流,并構(gòu)造PrintWriter對(duì)象

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

//由系統(tǒng)標(biāo)準(zhǔn)輸入設(shè)備構(gòu)造BufferedReader對(duì)象

System.out.println("Client:"+in.readLine());

//在標(biāo)準(zhǔn)輸出上打印從客戶端讀入的字符串

line=br.readLine();

//從標(biāo)準(zhǔn)輸入讀入一字符串

//4、獲取輸出流,響應(yīng)客戶端的請(qǐng)求

while(!line.equals("end")){

//如果該字符串為 "bye",則停止循環(huán)

writer.println(line);

//向客戶端輸出該字符串

writer.flush();

//刷新輸出流,使Client馬上收到該字符串

System.out.println("Server:"+line);

//在系統(tǒng)標(biāo)準(zhǔn)輸出上打印讀入的字符串

System.out.println("Client:"+in.readLine());

//從Client讀入一字符串,并打印到標(biāo)準(zhǔn)輸出上

line=br.readLine();

//從系統(tǒng)標(biāo)準(zhǔn)輸入讀入一字符串

} //繼續(xù)循環(huán)

//5、關(guān)閉資源

writer.close(); //關(guān)閉Socket輸出流

in.close(); //關(guān)閉Socket輸入流

socket.close(); //關(guān)閉Socket

server.close(); //關(guān)閉ServerSocket

}catch(Exception e) {//出錯(cuò),打印出錯(cuò)信息

System.out.println("Error."+e);

}

}

}

總結(jié)

以上是生活随笔為你收集整理的java监听某端口和ip_Java 通过Socket监听指定服务器(IP)的指定端口,及向指定服务器的指定端口发送信息...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。