㈠ 網路編程的編程介紹
網路模型:描述網路的結構原理和工作原理
OSI參考模型:七層
Internet網路模型:四層
網路協議:指定層上進行數據交換的規則。
Internet的網路層協議:IP協議;DNS協議(輔助協議)
Internet的傳輸層協議:TCP協議;UDP協議。 套接字(Sockets):應用程序和網路協議的介面。
java Sockets:Java應用程序和網路協議的介面,提供若干個類的定義。
Java應用程序利用這些類繼承網路協議的行為,實現網路通信。
TCP Sockets:使用TCP協議實現可靠的網路通信。
UDP Sockets:使用UDP協議實現效率較高的網路通信。 數據包是網路通信編程的一個重要概念,也稱為組裝包,指在應用層數據或報文按照一定事先規定好的規則整合的數據集合,實際操作包括組包(打包),數據包傳送,解包。 組包(打包),指按照協議把零散的數據或報文按照組合起來,實際應用中,比如在C++編程中,往往定義一種新的數據類型用來存儲數據包的結構。數據包傳送,指數據包的電氣物理傳輸。解包,指接收端對接收的數據進行解析,獲得有用信息和數據。
數據包經常通過套接字來傳送.
㈡ 網路編程具體是學什麼內容的
是從網路通信的編程原理和開發基礎入手,闡述主機掃描、TCP協議編程、UDP協議編程、遠程屏幕監視、木馬程序、IP語音網路編程、E-mail協議編程、FTP協議編程、網路信息加密傳輸和網路信息隱藏通信編程等原理、技術和實現方法。每章都有豐富的程序源代碼和實驗項目。《普通高等學校應用性人才培養系列規劃教材:計算機網路編程技術》以套接字編程為基本路線,力求體現網路編程的技術陛、實用性和安全性,在IP語音網路通信和網路信息隱藏通信等章節,還綜合體現了科研成果和技術開發的相關應用,具有一定的先進性。《普通高等學校應用性人才培養系列規劃教材:計算機網路編程技術》適合作為高等院校計算機及相關專業學生的教材,也可作為多媒體網路通信和安全編程人員的參考書
㈢ 通信工程學的主要內容是什麼
主幹學科:電子科學與技術、信息與通信工程、計算機科學與技術。
主要課程:電路理論與應用的系列課程、計算機技術系列課程、數字電路、模擬電路、信號與系統、電磁場理論、數字系統與邏輯設計、數字信號處理、通信原理等。
通信工程專業主要為研究信號的產生、信息的傳輸、交換和處理,以及在計算機通信、數字通信、衛星通信、光纖通信、蜂窩通信、個人通信、平流層通信、多媒體技術、信息高速公路、數字程式控制交換等方面的理論和工程應用問題。
隨著19世紀美國人發明電報之日起,現代通信技術就已經產生。
就業方向
1、研發人員
主要指通信技術研發人員
職業道路:研發員→研發工程師→高層市場或管理人員
2、銷售人員
主要指通信產品銷售人員
職業道路:銷售助理→銷售工程師→銷售(市場)經理
3、運營商
主要指電信運營商工作人員
職業道路:職員→主管→中高層管理人員
㈣ 通訊技術需要學習怎麼樣的編程
基礎課是高數、工程數學(線性代數 ),C語言程序設計、匯編語言,軟體基礎、專業基礎課有電路分析、信號與系統、模擬電路、數字電路、高頻電子線路、數字信號處理、通信原理、線性電路、電磁場理論、數字系統與邏輯設計、微波技術、微機原理、計算機通信網之類的課程
㈤ 做網路通信 JAVA開發的,主要要學習說明內容
1.IP地址與埠號
網路中的計算機若需要實現相互通信,必須為每台計算機指定標識號,通過標識號來指定接收數據和識別發送數據的計算機。TCP/IP協議中的「標識」即為IP地址。
一台計算機可同時運行多個網路程序,使用IP地址能夠將數據發送到計算機,卻不能保證將數據提交至哪個網路程序。因此每個被發送的網路數據包的頭部都設有「埠」部分,該部分為整數,用於表示將數據幀交給哪個應用程序進行處理。同時還必須為網路程序指定埠號,使不同的應用程序接收不同埠上的數據。
同一台計算機不能存在多個使用同一埠的程序。埠數的范圍在0-65535之間,其中在0-1023之間的埠號用於知名的網路服務和應用,1024以上的埠號用於普通應用程序,這樣做可以避免埠號代表的網路程序串用。
2.TCP與UDP
TCP為傳輸控制協議,UDP為用戶數據報協議。TCP是面向連接的通信協議,它提供兩台計算機之間可靠無差錯的數據傳輸。應用程序使用TCP進行通信時,數據源與目標之間將建立虛擬的連接,連接一旦建立,兩台計算機之間就可以將數據作為雙向位元組流進行交換。
UDP是無連接的通信協議,它不保證可靠數據的傳輸,但能夠實現向若干個目標發送數據的功能。
3.Socket簡介
Socket(套接字)是網路驅動層為應用程序提供的介面和機制,其作用可以看作是為應用程序創建的港口碼頭。
4.TCP網路編程概述
TCP協議具體操作步驟如下:
(1)伺服器程序創建ServerSocket對象,調用accept()方法等待客戶端連接。
(2)客戶端程序創建Socket對象與客戶端建立專線連接。
(3)伺服器接收客戶的連接請求,並創建新的Socket對象與客戶端建立專線連接。
(4)實現(2)、(3)步驟中建立連接的兩個Socket在同一線程上對話。
(5)伺服器重新等待新的連接請求。
5.ServerSocket類
TCP網路伺服器程序的編寫,需要使用ServerSocket類創建伺服器。
ServerSocket類的主要方法如下:
方法 類型 描述
public ServerSocket(int port) 構造方法 創建ServerSocket實例
public Socket accept() 方法 等待客戶端連接
public InetAddress getInetAddress() 方法 返回伺服器的IP地址
public boolean isClosed() 方法 返回ServerSocket的關閉狀態
public void close() 方法 關閉ServerSocket
伺服器端每次運行時均需調用accept()方法等待客戶端連接,該方法執行後服務端將進入阻塞狀態,直到客戶端再次連接。accept()方法的返回類型為Socket。
6.Socket類
客戶端必須創建Socket對象來建立與伺服器的連接,每個Socket對象代表一個客戶端。
Socket類的常用方法如下:
方法 類型 描述
public Socket(String host,int port) 構造方法 創建Socket對象,同時指定要連接伺服器的主機名和商品號
public InputStream getInputStream() 方法 返回套接字的輸入流
public OutputStream getOutputStream() 方法 返回套接字的輸出流
public boolean isClosed() 方法 返回套接字的關閉狀態
public void close() 方法 關閉此Socket
注意:TCP網路編程中的信息使用輸入輸出流的形式傳遞。
7.TCP伺服器程序
編寫TCP伺服器程序,代碼如下:
package com;
import java.net.*;
import java.io.*;
public class TcpServer{
public static void main(String []a){
ServerSocket server=null;
Socket socket=null;
BufferedReader in=null;
PrintWriter out=null;
try{
//伺服器在9000埠上監聽
server=new ServerSocket(9000);
//接收客戶端連接
socket=server.accept();
//得到客戶端輸入信息
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//向客戶端輸出信息,true是自動刷新緩沖區
out=new PrintWriter(socket.getOutputStream(),true);
out.println("已建立與伺服器的連接");
String info=in.readLine();
System.out.println("客戶端的輸入是:"+info);
}catch(Exception e){
e.printStackTrace();
}
finally{
try{
in.close();
out.close();
socket.close();
server.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
為驗證伺服器端程序能否正常工作,程序還需提供客戶端程序與伺服器進行通信。Windows系統中的telnet程序是一個系統自帶的TCP客戶端,可以使用telnet來進行與伺服器端的通信測試。運行telnet時指定連接伺服器的IP地址和埠號,連接一旦建立,telnet程序窗口就可以將輸入內容發送至伺服器,同時,可以顯示從伺服器接收到的數據。測試步驟如下:
(1) 運行伺服器端程序
(2) 在DOS窗口中運行telnet 127.0.0.1 9000,由於伺服器端程序和客戶端程序在同一台機器上,所以可以使用127.0.0.1代表本機。
註:調用一次accept()方法只能接受一個連接,接受多個連接需要將該方法放在循環語句中,同時每個連接的數據的數據輸入輸出也應放在一個循環語句中,才能實現伺服器端與客戶端的持續交換。
class Service implements Runnable{
Socket socket=null;
BufferedReader in=null;
PrintWriter out=null;
public Service(Socket socket){
this.socket=socket;
}
public void run(){
//得到客戶端輸入信息
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
//向客戶端輸出信息,true是自動刷新緩沖區
out=new PrintWriter(socket.getOutputStream(),true);
//循環讀取客戶端數據並向客戶端寫入數據
while(true){
out.println("已建立與伺服器的連接");
System.out.println("客戶端說:"+in.readLine());
}
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
in.close();
out.close();
socket.close();
server.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
}
public class TcpServer{
ServerSocket server=null;
Socket socket=null;
try{
//伺服器在9000埠上監聽
server=new ServerSocket(9000);
//接收多個客戶端連接
while(true){
socket=server.accept();
new Thread(new Service(socket)).start();
}catch(Exception e){
e.printStackTrace();
}
}
}
8.TCP客戶端程序
package com;
import java.net.*;
import java.io.*;
public class TcpClient{
public static void main(String []a){
ServerSocket server=null;
Socket socket=null;
BufferedReader in=null;
BufferedReader input=null;
PrintWriter out=null;
try{
socket=new Socket("127.0.0.1",9000);
while(true){
input=new BufferedReader(new InputStreamReader(System.in);
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
}
//向伺服器端輸出信息,true是自動刷新緩沖區
out=new PrintWriter(socket.getOutputStream(),true);
out.println("客戶端說:"+input.readLine);
String info=in.readLine();
System.out.println("伺服器說:"+info);
}catch(Exception e){
e.printStackTrace();
}
}
}
9.UDP網路編程
(1)DatagramSocket類主要用於實現信息的發送和接收。
DatagramSocket類的主要方法:
方法 類型 描述
public DatagramSocket() 構造方法 構造DatagramSocket對象不指定監聽埠
public DatagramSocket(int port) 構造方法 構造DatagramSocket對象指定監聽埠
public void send(DatagramPacket p) 方法 發送數據報
public void receive(DatagramPacket p) 方法 接收數據報
(2)DatagramPacket類
DatagramPacket類用於包裝一條要發送或接收的信息,發送數據和接收數據都需要構建DatagramPacket對象。
DatagramPacket類的主要方法:
方法 類型 描述
public DatagramPacket(byte[] buf,in length) 構造方法 構造DatagramPacket對象時指定內存空間和大小
public DatagramPacket(byte[] buf,in length,InetAddress address,int port) 同上
public byte[] getData() 方法 返回接收數據
public int getLength() 方法 返回發送或接收數據的長度
public InetAddress getAddress() 方法 返回機器的地址
(3)InetAddress類
InetAddress類用於表示計算機地址,主要方法如下:
方法 類型 描述
public static InetAddress getByName(String host) 方法 通過主機名或IP地址獲得一個InetAddress對象
public String getHostName() 方法 獲得IP地址對應的主機名
public String getHostAddress() 方法 返回IP地址字元串
10. UDP程序設計
編寫UDP網路程序需要分別編寫發送程序和接收程序
(1)發送程序
package com;
import java.net.*;
public class UdpSend{
public static void main(String [] a){
DatagramSocket ds=null;
DatagramPacket dp=null;
byte[] buf=new byte[1024];
try{
//DatagramSocket類用於完成消息的發送
ds=new DatagramSocket();
String info="hello world";
dp=new DatagramPacket(info.getBytes(),info.length,InetAddress.getByName("localhost"),3000);
//發送數據包
ds.send(dp);
}catch(Exception e){
e.printStackTrace();
}
finally
{
ds.close(); //消息發送完畢,關閉對象
}
}
}
(2)接收程序
package com;
import java.net.*;
public class UdpRecv{
public static void main(String [] a){
DatagramSocket ds=null;
DatagramPacket dp=null;
byte[] buf=new byte[1024];
try{
//DatagramSocket類用於完成消息的發送
ds=new DatagramSocket();
dp=new DatagramPacket(buf,1024);
//接收發送方發送的數據
ds.receive(dp);
String str=new String(dp.getData(),0,dp.getLength());
str=str+" from "+dp.getAddress.getHostAddress();
System.out.println(str);
}catch(Exception e){
e.printStackTrace();
}
finally
{
ds.close(); //消息發送完畢,關閉對象
}
}
}