① java做什麼會用到socket
1、web項目的話一般用到的socket比較少,因為web項目的話一般運用了一些框架,它們幫你把這些東西都封裝了,所以一般不會用到。
2、socket能然你較常接觸主要是在網路編程中,很多東西沒人幫你封裝好,你要自己親手去敲,去了解。比如你自己寫一個聊天系統,你就會較廣泛的去運用到socket
② java網路編程中 Socket s1=s.accept();這句不懂啥意思能教教我么希望解答者說具體點!謝謝!!
Socket s1=s.accept();
s.accept(); 會一直阻塞,等待客戶端來鏈接,就是說程序執行到這里就會停住,不往下走。
當有客戶端連接上來了,會返回一個 Socket對象(Socket s1=s.accept();),這時候程序就會往下繼續執行,然後繼續下面的程序操作
③ java程序關於eclipse運行socket程序
這里你沒有理解java網路編程的原理,你這樣
的代碼運行是不可能進行通信的
問題1:
伺服器端
雖然監聽了埠,但是卻沒有建立和客戶端的連接,也沒有接受數據
問題2:客戶端雖然建立了連接,卻沒有發送數據給伺服器
具體還是多看看java網路編程(TCP/
IP網路
編程)
④ java 網路編程 拋出Socket is closed異常 大蝦幫幫忙
你的客戶端socket斷掉了,服務端當然拋異常!
在服務端中accept方法是堵塞的..在鏈接斷開時要重新accept.而不能讓程序結束!
⑤ 什麼是java socket
事實上網路編程簡單的理解就是兩台計算機相互通訊數據而已,對於程序員而言,去掌握一種編程介面並使用一種編程模型相對就會顯得簡單的多了,Java SDK提供一些相對簡單的Api來完成這些工作。Socket就是其中之一,對於Java而言,這些Api存在與java.net 這個包裡面,因此只要導入這個包就可以准備網路編程了。
網路編程的基本模型就是客戶機到伺服器模型,簡單的說就是兩個進程之間相互通訊,然後其中一個必須提供一個固定的位置,而另一個則只需要知道這個固定的位置。並去建立兩者之間的聯系,然後完成數據的通訊就可以了,這里提供固定位置的通常稱為伺服器,而建立聯系的通常叫做客戶端,基於這個簡單的模型,就可以進入網路編程啦。
Java對這個模型的支持有很多種Api,而這里我只想介紹有關Socket的編程介面,對於Java而言已經簡化了Socket的編程介面。首先我們來討論有關提供固定位置的服務方是如何建立的。Java提供了ServerSocket來對其進行支持.事實上當你創建該類的一個實力對象並提供一個埠資源你就建立了一個固定位置可以讓其他計算機來訪問你,ServerSocket server=new ServerSocket(6789);這里稍微要注意的是埠的分配必須是唯一的。因為埠是為了唯一標識每台計算機唯一服務的,另外埠號是從0~65535之間的,前1024個埠已經被Tcp/Ip 作為保留埠,因此你所分配的埠只能是1024個之後的。好了,我們有了固定位置.現在所需要的就是一根連接線了.該連接線由客戶方首先提出要求。因此Java同樣提供了一個Socket對象來對其進行支持,只要客戶方創建一個Socket的實例對象進行支持就可以了。Socket client
=new Socket(InetAddress.getLocalHost(),5678);客戶機必須知道有關伺服器的IP地址,對於著一點Java也提供了一個相關的類InetAddress 該對象的實例必須通過它的靜態方法來提供,它的靜態方法主要提供了得到本機IP 和通過名字或IP直接得到InetAddress的方法。
上面的方法基本可以建立一條連線讓兩台計算機相互交流了,可是數據是如何傳輸的呢?事實上I/O操作總是和網路編程息息相關的。因為底層的網路是繼續數據的,除非遠程調用,處理問題的核心在執行上,否則數據的交互還是依賴於IO操作的,所以你也必須導入java.io這個包.java的IO操作也不復雜,它提供了針對於位元組流和Unicode的讀者和寫者,然後也提供了一個緩沖用於數據的讀寫。
在網路搜索里輸入java socket會有N多的結果給你答案。
⑥ 什麼是Java網路編程
網路編程主要是指網路通信,實現計算機與計算機之間的對話和文件傳輸等,就像QQ,飛秋,P2P點對點傳輸等等
⑦ Java網路編程如何傳遞socket對象
通過QQ試一試 用台式電腦
⑧ java網路編程應該怎樣在客戶端和伺服器間實現通信
以前寫的,照貼了。。。伺服器端:import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.*;
import java.net.*;/*6、 採用UDP協議,編寫一個Java網路應用程序,該應用分伺服器端程序和客戶端程序兩部分。
* 客戶端指定一個伺服器上的文件名,讓伺服器發回該文件的內容,或者提示文件不存在。
* (20分)(服務端程序和客戶端程序分別命名為Server.java和Client.java)*/
public class N4BT6 extends Frame
{
DatagramSocket socket ;
DatagramPacket packet ;byte[] buf ;
File file ;
FileInputStream input;
String message = "該文件不存在";
TextArea text;
public N4BT6(String title)
{
super(title);
text = new TextArea(6,4);
add(text);
setSize(400, 300);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
});
buf = new byte[1024];
try
{
socket = new DatagramSocket(1230);
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
file = new File(new String(packet.getData()));
socket = new DatagramSocket();
}
catch (Exception e)
{e.printStackTrace();
}
if(file.exists())
{
try
{
buf = new byte[(int)file.length()];
packet = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1234);
input = new FileInputStream(file);
input.read(buf);
socket.send(packet);
}
catch (IOException e)
{
e.printStackTrace();
}
}
else
{
try
{
packet = new DatagramPacket(message.getBytes(),message.getBytes().length,
InetAddress.getLocalHost(),1234);
socket.send(packet);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
new N4BT6("Server");
}
}
客戶端:import java.awt.*;
import java.awt.event.*;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;public class N4BT6_2 extends Frame
{
TextArea text;
String message = "Q.txt";
DatagramSocket socket ;
DatagramPacket packet;
byte[] buf;
public N4BT6_2(String title)
{
super(title);
text = new TextArea(6,4);
add(text);
setSize(400, 300);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose();
}
});
try
{
socket = new DatagramSocket();
packet = new DatagramPacket(message.getBytes(),message.getBytes().length,
InetAddress.getLocalHost(),1230);
socket.send(packet);
}
catch (Exception e)
{
e.printStackTrace();
}
try
{
buf = new byte[1024];
socket = new DatagramSocket(1234);
packet = new DatagramPacket(buf,buf.length);
socket.receive(packet);
text.append(new String(buf));
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
new N4BT6_2("Client");
}
}
⑨ java中面向網路編程的問題Socket Serversocket
錯誤在客戶端
寫出數據的時候
要
flush()一下
String
str="用戶:tom,登錄的密碼是123";
pw.write(str);
在這個後面加個
pw.flush();
⑩ JAVA 網路編程ServerSocket的accept問題
就是有你本機的程序在連接這個埠,因為一直列印的127.0.0.1。如果你客戶端也是java程序,建議關閉所有java進程,然後換個埠監聽後開啟你的ServerSocket。