Ⅰ Java中客戶端與伺服器之間怎樣連接
socket通信
客戶端:Socket s= new Socket ("轎兄localhost"猛褲,8888);
服務枝帆簡器:ServerSocket ss = new ServerSocket(8888);
Socket s=ss.accept();
Ⅱ java 網路編程: 如何實現客戶端與客戶端之間的之間通信
伺服器告凳吵知雙方對方的ip地址,並協調由哪一方主動連接。
如 協調結果是: 把c2的地址告訴c1,讓c1主動連接c2,讓c2打開埠等待連接。
要考慮認證問題,比如c2如何凱盯知道連接上來的是c1,而不是其他人,就需要有認證機制。
另外要棗孫侍考慮內網問題。由於從外部連接內網裡面的IP地址是相當繁瑣復雜的,所以需要特別的機制處理。
Ⅲ java 採用mina進行網路連接,怎樣在客戶端綁定本地的ip和port,下面的程序只指定了伺服器端
ConnectFuture future = connector.connect(new InetSocketAddress(
host, port));// 創建臘賀連接
future.awaitUninterruptibly();// 等待連接創建完輪蠢派成檔圓
Ⅳ java中,怎樣實現cs模式的伺服器與客戶端的通信
Socket通信:
作為伺服器端:
//生成伺服器端,監聽伺服器設定的埠槐蔽滑
ServerSocket
socketServer
=
new
ServerSocket(埠號);
//建立客戶端和伺服器端的鏈接,這時再看客戶端
Socket
socket
=
socketServer.accept();
作為客戶端:
//新建一個Socket,包含伺服器端的IP和埠號,這樣在伺服器啟動情況下可以建立和伺服器的鏈接.
Socket
socket
=
new
Socket("IP地址","埠號");
這時,伺服器端和客戶端的連接已經建立,如果需要通信和傳輸數據的話並裂分別在伺服器端、客戶端新建流對象,可以通過流對象實現雙方鉛臘之間的互通.
有關流的內容自己看書體會下就能寫出B/S結構的通信了。
Ⅳ java網路編程中,對於客戶端和伺服器的tcp連接,如果客戶端異常斷開連接,伺服器端如何獲知,有什麼方法
這個得用java心跳處理機制。就是客戶端每隔一段時間向伺服器發送指定信息,如果伺服器沒有收到客服端發來的信息,這時伺服器和客服端連接就已經斷開。具體的心跳實現網路上很多。
Ⅵ java客戶端和服務端建立連接防火牆關閉怎解決
右鍵點擊網路Internet訪問共享中心。
網路共享中心左下方導航處有個『Windows 防火牆』,點擊歷圓進入。
進入『允許程序或功能通過windows防粗慶火牆』。
在允許的程序和功能下找到需要設置白名單的軟體。如果沒有,點擊『允許運行另一程序』。
選擇程序,點擊後路徑會肢凳塌發現變化,轉換到程序的路徑中。把程序添加進來。
在家庭/工作專用和公用前面都打上勾,也可以按自己的需要去改變。最後保存方可。
Ⅶ 在java網路連接中有客戶端和伺服器端
我想你應該是想問C/S架構中的客戶端和服務端
兩者最常見的方式是通過Socket方式進行通信。
Socket可以理解成一個電線插座的工作過程:
伺服器是電源插件, 客戶端是電器
C和S通過電線和指定的插孔進行連接,連上後,S將電力源源不斷發送到C, C就可以工作了。 當然C也可以反向發送指轎信息到S。 兩者可以相互通信。
在建立的過程中代碼有一唯擾肆些不同。
在服務端採用API類是ServerSocket
在客戶端採用的API是Socket類
連接建立後,雙方都通過連接獲取輸入和輸出流從而實現通信。即: InputStream is=socket.getInputStream();
is.read(...);
連接代碼:
S端:
ServerSocket server=null;
try {
server=new ServerSocket(指定的埠);
}catch(Exception e){
System.out.println("不李畢能監聽:"+e.toString());
}
Socket socket=null;
try {
socket=server.accept();
InputStream is=socket.getInputStream();
//己通過建立起流,可以讀取客戶端發來的請求了
//同樣也可以發送能過 sokcet.getOutputStream()
.....
}
catch(IOException e){
System.out.println("出錯:"+e.toString());
}finally{
try {
if(socket!=null){
socket.close();
server.close();
}
}
catch(IOException e){
e.printStackTrace();
}
}
客戶端:
Socket socket=null;
try {
socket=new Socket(url,埠);
//獲取輸出流,從而向服務端發數據
socket.getOutputStream();
//獲取輸入流,從而可以讀服務端的數據
socket.getInputStream();
.....
}catch(Exception e){
e.printStackTrace();
}
finally{
try {
socket.close();
}
catch(IOException e){
e.printStackTrace();
}
}
Ⅷ java網路編程應該怎樣在客戶端和伺服器間實現通信
以前寫的,照貼了。。。伺服器端:import java.awt.*;x0dx0aimport java.awt.event.WindowAdapter;x0dx0aimport java.awt.event.WindowEvent;x0dx0aimport java.io.*;x0dx0aimport java.net.*;/*6、 採用UDP協兄侍議,編寫一羨銷吵個Java網路應用程序,該應用分伺服器端程序和客戶端程序兩部分。x0dx0a* 客戶端指定一個伺服器上的文件名,讓服斗梁務器發回該文件的內容,或者提示文件不存在。x0dx0a* (20分)(服務端程序和客戶端程序分別命名為Server.java和Client.java)*/x0dx0apublic class N4BT6 extends Framex0dx0a{x0dx0aDatagramSocket socket ;x0dx0aDatagramPacket packet ;byte[] buf ;x0dx0aFile file ;x0dx0aFileInputStream input;x0dx0aString message = "該文件不存在";x0dx0aTextArea text;x0dx0apublic N4BT6(String title)x0dx0a{x0dx0asuper(title);x0dx0atext = new TextArea(6,4);x0dx0aadd(text);x0dx0asetSize(400, 300);x0dx0asetVisible(true);x0dx0aaddWindowListener(new WindowAdapter()x0dx0a{x0dx0apublic void windowClosing(WindowEvent e)x0dx0a{x0dx0adispose();x0dx0a}x0dx0a});x0dx0ax0dx0abuf = new byte[1024];x0dx0atryx0dx0a{x0dx0asocket = new DatagramSocket(1230);x0dx0apacket = new DatagramPacket(buf, buf.length);x0dx0asocket.receive(packet);x0dx0afile = new File(new String(packet.getData()));x0dx0asocket = new DatagramSocket();x0dx0a} x0dx0acatch (Exception e)x0dx0a{e.printStackTrace();x0dx0a}x0dx0ax0dx0aif(file.exists())x0dx0a{x0dx0atryx0dx0a{x0dx0abuf = new byte[(int)file.length()];x0dx0apacket = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1234);x0dx0ainput = new FileInputStream(file);x0dx0ainput.read(buf);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (IOException e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0aelsex0dx0a{x0dx0atryx0dx0a{x0dx0apacket = new DatagramPacket(message.getBytes(),message.getBytes().length,x0dx0aInetAddress.getLocalHost(),1234);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0ax0dx0a}x0dx0apublic static void main(String[] args)x0dx0a{x0dx0anew N4BT6("Server");x0dx0a}x0dx0a}x0dx0a客戶端:import java.awt.*;x0dx0aimport java.awt.event.*;x0dx0aimport java.net.DatagramPacket;x0dx0aimport java.net.DatagramSocket;x0dx0aimport java.net.InetAddress;public class N4BT6_2 extends Framex0dx0a{x0dx0aTextArea text;x0dx0aString message = "Q.txt";x0dx0aDatagramSocket socket ;x0dx0aDatagramPacket packet;x0dx0abyte[] buf;x0dx0apublic N4BT6_2(String title)x0dx0a{x0dx0asuper(title);x0dx0atext = new TextArea(6,4);x0dx0aadd(text);x0dx0asetSize(400, 300);x0dx0asetVisible(true);x0dx0aaddWindowListener(new WindowAdapter()x0dx0a{x0dx0apublic void windowClosing(WindowEvent e)x0dx0a{x0dx0adispose();x0dx0a}x0dx0a});x0dx0atryx0dx0a{x0dx0ax0dx0asocket = new DatagramSocket();x0dx0apacket = new DatagramPacket(message.getBytes(),message.getBytes().length,x0dx0aInetAddress.getLocalHost(),1230);x0dx0asocket.send(packet);x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0ax0dx0atryx0dx0a{x0dx0abuf = new byte[1024];x0dx0asocket = new DatagramSocket(1234);x0dx0apacket = new DatagramPacket(buf,buf.length);x0dx0asocket.receive(packet);x0dx0atext.append(new String(buf));x0dx0a}x0dx0acatch (Exception e) x0dx0a{x0dx0ae.printStackTrace();x0dx0a}x0dx0a}x0dx0apublic static void main(String[] args)x0dx0a{x0dx0anew N4BT6_2("Client");x0dx0a}x0dx0a}
Ⅸ java Socket編程 客戶端與伺服器端在兩個網里怎麼實現連接 s = new Socket("127.0.0.1", 8880);這個IP怎麼
s
=
new
socket("127.0.0.1",
8880)
前面那個ip是伺服器備正銀的地址,只要這個ip寫正確了,伺服器放在哪裡,客戶端都能連上去的。
127.0。0.1最簡單的解釋就是本機地址,你用這個ip,訪問的就是你自己。
你可以去伺服器上查看仿宴一下網路地址,然後把127.0。0.1換清豎成伺服器的ip。
Ⅹ java網路編程,這里出現什麼問題,怎麼客戶端跟伺服器連接不上,而且也不會輸出
PrintWriter out = new PrintWriter(s.getOutputStream());
out.write("你好!");
替換成陸備
PrintStream out = new PrintStream(s.getOutputStream());
out.print("皮氏你好!"燃悉散);