java埠監聽
Ⅰ java多埠監聽
序調用的這些埠(有些惡意程序可隨意改變埠功能滴),可以嘗試著把所用的應用程序和網頁都關掉然後再看一下埠的情況怎樣。最後如果樓主以後想要做一些「小實驗」或帶有一些危險性的小動作的話,推薦樓主還是考慮在虛擬機下先實驗一下真正摸清弄明白了再在自己機器上HAPPY!!~~
(虛擬機主要有vmware 及微軟的virtualpc等,都挺好用!~~)
Ⅱ 為什麼Java寫的Http伺服器監聽80埠,有沖突時不報錯。
因為 Apache 現在只使用了 192.168.x.x:80 ,而你可以使用另外的尚未使用的127.0.0.1:80. 沒指定 IP 表示監聽在所有可能的 IP 上,包括虛擬的 ipv6,loopback,vmware 虛擬的網卡。
Ⅲ 自己在java建了伺服器別人怎麼進來伺服器呢
在Java中創建了一個伺服器之後,要讓其他人能夠訪問該伺服器,通常涉及以下幾個步驟:
確保伺服器已啟動並監聽:
使用Java編寫的網路伺服器,如之前提到的,通常使用ServerSocket來監聽特定的埠。例如,ServerSocket serverSocket = new ServerSocket(8080);這行代碼將伺服器綁定到8080埠上。確保伺服器正在運行並且正在監聽該埠。告知其他人伺服器的地址和埠:
為了讓其他人能夠連接到你的伺服器,你需要告訴他們伺服器的IP地址和監聽的埠號。例如,如果你的伺服器在本地計算機上運行,並且你有一個公共的IP地址(或者你可以通過路由器進行埠轉發),其他人就可以使用你的公共IP地址和埠號(如your_public_ip:8080)來嘗試連接到你的伺服器。處理客戶端連接:
在伺服器端,你需要使用ServerSocket的accept()方法來等待客戶端的連接。當客戶端嘗試連接時,accept()方法將返回一個Socket對象,你可以使用這個對象與客戶端進行通信。確保網路設置允許外部連接:
如果你的伺服器運行在一個私有的網路環境中(如家庭網路或公司內部網路),你可能需要配置路由器或防火牆來允許外部連接。這通常涉及到埠轉發,即將外部連接轉發到你的伺服器所在的內部IP地址和埠上。處理客戶端請求和響應:
一旦客戶端連接上伺服器,你就可以通過Socket對象發送和接收數據了。你需要編寫代碼來處理客戶端的請求,並生成適當的響應。測試連接:
在將伺服器的地址和埠告訴其他人之前,最好先自己測試一下連接是否正常。你可以使用telnet或其他網路工具來嘗試連接到你的伺服器,並檢查是否能夠成功建立連接和發送/接收數據。
Ⅳ 如何實現java對指定ip和埠接收數據,求源碼
在客戶/伺服器通信模式中, 伺服器端需要創建監聽埠的 ServerSocket, ServerSocket 負責接收客戶連接請求。ServerSocket並不能直接向客戶端發送數據。
通常做法是,ServerSocket接收到一個連接請求,用accept建立連接:
socket = serverSocket.accept(); //接收客戶連接
然後啟動一個新的線程來處理和客戶端的收發數據的工作
Thread workThread = new Thread(new Handler(socket)); //創建一個工作進程
workThread.start(); //啟動工作進程
使用accept後的Socket去收發數據。
Ⅳ java中如何檢測本機指定的UDP服務埠是否被佔用並且自動分配一個可用udp埠;
1.埠佔用編譯器會報錯,可以從錯誤看出來是不是埠被佔用。沒有專門的檢測工具和方法
2.DatagramSocket(在Java中使用UDP協議編程的相關類)
用於接收和發送UDP的Socket實例。該類有3個構造函數:
DatagramSocket():通常用於客戶端編程,它並沒有特定監聽的埠,僅僅使用一個臨時的。程序會讓操作系統分配一個可用的埠。
DatagramSocket(int port):創建實例,並固定監聽Port埠的報文。通常用於服務端
DatagramSocket(int port, InetAddress localAddr):這是個非常有用的構建器,當一台機器擁有多於一個IP地址的時候,由它創建的實例僅僅接收來自LocalAddr的報文。
DatagramSocket具有的主要方法如下:
1)receive(DatagramPacket d):接收數據報文到d中。receive方法產生一個「阻塞」。「阻塞」是一個專業名詞,它會產生一個內部循環,使程序暫停在這個地方,直到一個條件觸發。
2)send(DatagramPacket dp):發送報文dp到目的地。
3)setSoTimeout(int timeout):設置超時時間,單位為毫秒。
4)close():關閉DatagramSocket。在應用程序退出的時候,通常會主動釋放資源,關閉Socket,但是由於異常地退出可能造成資源無法回收。所以,應該在程序完成時,主動使用此方法關閉Socket,或在捕獲到異常拋出後關閉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();
}
}
}
}