java埠監聽埠
❶ java被佔用埠的監聽
1.調用系統命令, netstat -ano| grep <埠號>(linux)如果有記錄則說明該埠被佔用。
2.試圖建立該埠號的socket鏈接。如果返回埠已綁定的錯誤,就說明被佔了。
❷ java 如何在伺服器端用socket創建一個監聽埠,並對接受的數據進行處理,埠號為3333,請高手指點一下
我網路HI你好了
public class Test {
public static void main(String[] args) {
Test1 t=new Test1();
t.start(); //啟動線程
}
}
/**
* 繼承一個線程類
* @author Administrator
*
*/
class Test1 extends Thread{
private ServerSocket server = null;
public Test1(){
try {
server=new ServerSocket(3333);
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("服務端初始化scoket失敗!");
}
}
/**
* 繼承父類方法
*/
public void run(){
Socket clientSocket = null;
DataInputStream dis =null;
DataOutputStream dos=null;
String str="";
while(true){
try {
clientSocket=server.accept();
dis = new DataInputStream(clientSocket.getInputStream());//獲取輸入流,用於接收客戶端發送來的數據
dos = new DataOutputStream(clientSocket.getOutputStream());//獲取輸出流,用於客戶端向伺服器端發送數據
str=dis.readUTF(); //這里是客戶端發送來的數據
/*
* 這里邊你就可以做你想操作的事情了
*/
dos.writeUTF("這里是返回到客戶端的數據");//這里用來向客戶端返回數據
dis.close();
dos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
❸ 在套頭字編程中,伺服器方需用到java類什麼來監聽埠
可以參考一下這段代碼
//1. 構造ServerSocket實例,指定服務埠。
ServerSocket servSock = new ServerSocket(servPort);
while(true)
{
// 2.調用accept方法,建立和客戶端的連接
Socket clntSock = servSock.accept();
SocketAddress clientAddress =
clntSock.getRemoteSocketAddress();
System.out.println("Handling client at " + clientAddress);
// 3. 獲取連接的InputStream,OutputStream來進行數據讀寫
InputStream in = clntSock.getInputStream();
OutputStream out = clntSock.getOutputStream();
while((recvMsgSize = in.read(receiveBuf)) != -1)
{
out.write(receiveBuf, 0, recvMsgSize);
}
// 4.操作結束,關閉socket.
clntSock.close();
}
❹ java web應用如何獲取監聽埠號
如果是在jsp頁面上
<%
intport=request.getServerPort();
%>
如果是在controller層java代碼中
intport=request.getServerPort();//springMVC【request作為參數】或者servlet作為controller
intport=ServletActionContext.getRequest().getServerPort();//struts2版
了解一下requestjava WEB開發基礎知識
❺ 如何用JAVA代碼監聽某個開放埠
比如我要監聽1234這個埠,代碼如下:
String ip = "127.0.0.1";
int port = 1234;
try {
Socket socket = new Socket(ip, port);
socket.setSoTimeout(5539900);
java.io.OutputStream out = socket.getOutputStream();
byte[] date = "hello world".getBytes();
out.write(data);
out.flush();
byte[] buffer = new byte[1024];
int len = -1;
java.io.FileOutputStream fout = new java.io.FileOutputStream(
"d:/response.txt");
java.io.ByteArrayOutputStream bout = new java.io.ByteArrayOutputStream();
java.io.InputStream in = socket.getInputStream();
while ((len = in.read(buffer, 0, buffer.length)) > 0) {
bout.write(buffer, 0, len);
}
in.close();
bout.flush();
bout.close();
byte[] rdata = bout.toByteArray();
System.out.println(new String(rdata));
fout.write(rdata);
fout.flush();
fout.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
伺服器端的
ServerSocket ss = new ServerSocket(1234);
Socket socket=null;
BufferedReader in;
PrintWriter out;
while (true) {
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
String line = in.readLine();
out.println("you input is :" + line);
out.close();
in.close();
socket.close();
}
❻ Java改變監聽埠
可以,只要你這個線程不是在一個同步塊就可以
❼ Java如何實現同時監聽任何埠,最好有代碼例子!,
import java.net.*;
import java.io.*;
import javax.swing.*;
public class Server{
public Server() throws Exception{
ServerSocket socket=new ServerSocket(1000); //在1000埠監聽
while(true){
Socket s=socket.accept();
while(!s.isConnected()){}
new Processor(s).start();
}
}
public static void main(String args[]) throws Exception{
new Server();
}
}
class Processor extends Thread{
Socket s=null;
public Processor(Socket s) throws Exception{
this.s=s;
}
public void run(){
try{
ObjectInputStream obj=new ObjectInputStream(s.getInputStream());
JOptionPane.showMessageDialog(null,(String)obj.readObject());
obj.close();
}catch(Exception e){}
}
}
❽ java多埠監聽
序調用的這些埠(有些惡意程序可隨意改變埠功能滴),可以嘗試著把所用的應用程序和網頁都關掉然後再看一下埠的情況怎樣。最後如果樓主以後想要做一些「小實驗」或帶有一些危險性的小動作的話,推薦樓主還是考慮在虛擬機下先實驗一下真正摸清弄明白了再在自己機器上HAPPY!!~~
(虛擬機主要有vmware 及微軟的virtualpc等,都挺好用!~~)
❾ JAVA中如何監聽一個埠來進入收和發信息!
String ip = "127.0.0.1";
int port = 1234;
try {
Socket socket = new Socket(ip, port);
socket.setSoTimeout(5539900);
java.io.OutputStream out = socket.getOutputStream();
byte[] date = "hello world".getBytes();
out.write(data);
out.flush();
byte[] buffer = new byte[1024];
int len = -1;
java.io.FileOutputStream fout = new java.io.FileOutputStream(
"d:/response.txt");
java.io.ByteArrayOutputStream bout = new java.io.ByteArrayOutputStream();
java.io.InputStream in = socket.getInputStream();
while ((len = in.read(buffer, 0, buffer.length)) > 0) {
bout.write(buffer, 0, len);
}
in.close();
bout.flush();
bout.close();
byte[] rdata = bout.toByteArray();
System.out.println(new String(rdata));
fout.write(rdata);
fout.flush();
fout.close();
socket.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
伺服器端的
ServerSocket ss = new ServerSocket(1234);
Socket socket=null;
BufferedReader in;
PrintWriter out;
while (true) {
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
String line = in.readLine();
out.println("you input is :" + line);
out.close();
in.close();
socket.close();
}
❿ java 一個伺服器如何一直監聽兩個埠,就是讓那兩個埠的accpet( )一直處於 while(true)狀態。
你是因為什麼原因要終止這個線程的呢?直接把這個serverSocket close掉不行么?
如果你是因為程序出錯,埠又被佔用。可以這樣查殺佔用埠的進程。。。
netstat -na -o 找到佔用1234埠的進程號
taskkill /pid 進程號
這樣就可以殺死那個進程了····
如果是要在程序中控制的話,用close方法,然後把那個serverSocket置為null應該就可以了吧。。。
而且樓上說得對,你的程序本來就有問題,serverSocket 的實例話就不應該也在循環裡面,估計你是接受到一個客戶端以後,new 一個serverSocket ,繼續綁定1234埠報錯,所以才來提問的。這個是你程序的問題,並不需要去殺死那個什麼線程。。。