java监听某端口和ip_Java 通过Socket监听指定服务器(IP)的指定端口,及向指定服务器的指定端口发送信息...
客戶端:向指定端口發(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)題。
- 上一篇: java中上传附件怎么该名称_将附件保存
- 下一篇: IDEA2021.1.2版创建Java