當前位置:首頁 » 編程軟體 » sctp編程

sctp編程

發布時間: 2022-02-28 22:57:14

A. linux網路編程需要怎麼融合

知道這些是可以做最基本的嵌入式軟體開發,以後的路還很長,如果想要在網路編程方向發展,建議繼續學習一些協議,如http,sctp,tftp等,知道網路各個層的功能及整個網路架構。在這個網路通信的基礎上實現音頻的傳輸,還有資料庫知識等,以後的路還很長,不要固步自封

B. 傳輸層協議SCTP在工程中到底有沒有用常用嗎我在看《unix網路編程》卷1第三版

常用!

C. UNIX網路編程的清華大學出版社出版圖書

作者: (美)史蒂文斯,(美)芬納,(美)魯道夫 著,楊繼張 譯
出 版 社: 清華大學出版社
出版時間: 2006-1-1
頁數: 848
I S B N : 9787302119746
包裝: 平裝
所屬分類: 圖書 >> 計算機/網路 >> 操作系統/系統開發 >> UNIX Solaris 「這是一本專業人士渴望拜讀的書,因為它巧妙地結合了實踐經驗、歷史觀點和深入涉及本領域獲得的洞察力。閱讀本書給我帶來了樂趣,也使我獲益匪淺,相信大家一定會有同感。」
——Sam Leffer
為了構建現今高度分布的網路應用和服務,大家務必深入掌握套介面等關鍵的網路編程API。《UNIX網路編程第1卷:套介面API(第3版)》一書為在各種環境下構建健壯的高性能網路互連系統提供了詳盡的自始至終的指導。這個新版本基於W.Ri-chard Stevens先生久負盛譽的遺著,由兩名一流的網路編程專家全面更新,融入當今至關重要的標准、實現和技術。
新的主題包括:
·POSIX單一UNIX規范第3版
·IPv6相關若干API(包括更新過的IPv6/IPv4互操作性的指導)
·新的SCTP傳輸協議
·基於IPsec的密鑰管理套介面
·在FreeBSD 4.8/5.1、Linux2.4.7、Solaris 9、AIX 5.1、HP-UX 11i和MacOS/x 10.2.6上運行程序例子
·新的網路編程調試技術
·源特定多播API,它是PI多播廣泛部署的關鍵催化劑
兩名新作者還更新並拓展了Stevens先生關於如下UNIX網路相關標准和技術的權威性論述:
·TCP傳輸和UDP傳輸
·套介面編程:基本、高級、路由、原始等
·I/O:復用、非阻塞、信號驅動、非同步等
·守護進程和inetd
·UNIX域協議
·ioctl操作
·廣播和組播
·線程
·流
·程序設計:TCP迭代伺服器、並發伺服器、預先派生子進程伺服器、預先線程伺服器等
自1990年起,網路編程人員深入掌握所需技術的源泉是:W. Richard Stevens先生的單卷本UNIX Network Programming。他們有一個新版本可以汲取知識了,它是為迎接挑戰而專門設計的。 本書第1版和第2版由已故UNIX網路專家W. Richard Stevens博士獨自編寫。本書是3版,由世界著名網路專家Bill Fenner和Andrew M. Rudoff執筆,根據近幾年網路技術的發展,對上一版進行全面修訂,增添了IPv6的更新過的信息、SCTP協議和密鑰管理套介面的內容,刪除了X/Open傳輸介面的內容。
本書全面深入地介紹了如何使用套介面API進行網路編程。全書從對套介面API的綜合討論開始,論述了基本編程內容後,即轉入高級套介面編程的相關主題,包括IPv4與IPv6的互操作性、UNIX域協議、非阻塞I/O、路由套介面、廣播、多播、線程、原始套介面、數據鏈路訪問等,對於客戶/伺服器程序的各種設計方法也作了完整的探討,最後還對流這種設備驅動機製作了深入分析。在附錄中給出了IPv6、ICMPv6、虛擬網路等內容以及部分習題答案。
本書內容詳盡且具權威性,幾乎每章都提供精選的習題,是計算機和網路專業高年級本科生和研究生的首選教材,本書也可作為網路研究和開發人員的自學教材和參考書。 已故的W.Richard Stevens先生是UNIX Network Programming第1版和第2版的原作者,這兩本書被公認為是UNIX網路編程的經典教科書。
Bill Fenner是位於加利福尼亞州Menlo Park的AT&T實驗室的主要技術成員,專攻IP多播、網路管理和測量。他是IETF路由領域的主管之一,負責審批作為RFC發布的所有與路由有關的文檔。
Andrew M.Rudoff是Sun Microsystems公司的資深軟體工程師,專攻網路、操作系統內核、文件系統及高可用性軟體體系結構。 第1部分 簡介和TCP/IP?
第1章 簡介
第2章 傳輸層:TCP、UDP和SCTP
第2部 分基本套介面編程?
第3章 套介面編程簡介
第4章 基本TCP套介面編程
第5章 TCP客戶/伺服器程序例子?
第6章 I/O復用:select和poll函數
第7章 套介面選項
第8章 基本UDP套介面編程
第9章 基本SCTP套介面編程
第10章 SCTP客戶/伺服器程序例子
第11章 名字與地址轉換
第3部分 高級套介面編程?
第12章 IPv4與IPv6的互操作性
第13章 守護進程和inetd超級伺服器?
第14章 高級I/O函數
第15章 Unix域協議
第16章 非阻塞I/O
第17章 ioctl操作
第18章 路由套介面
第19章 密鑰管理套介面?
第20章 廣播
第21章 多播
第22章 高級UDP套介面編程
第23章 高級SCTP套介面編程
第24章 帶外數據
第25章 信號驅動I/O
第26章 線程?
第27章 IP選項
第28章 原始套介面
第29章 數據鏈路訪問
第30章 客戶/伺服器程序設計範式
第31章 流
第4部分 附錄?

D. 跪求:linux網路編程,作者:理查德史蒂文斯,發我郵箱:[email protected] ,小弟感激不盡!!!

你這個郵箱有的嗎,怎麼顯示被退回了,剛才發了,顯示退回了,快回答怎麼回事,要的快私聊我

E. 《UNIX網路編程卷1》txt下載在線閱讀全文,求百度網盤雲資源

《UNIX網路編程 卷1:套接字聯網API(第3版)》(W.Richard Stevens)電子書網盤下載免費在線閱讀

鏈接:

提取碼: t24d

書名:UNIX網路編程 卷1:套接字聯網API(第3版)

作者:W.Richard Stevens

譯者:楊繼張

豆瓣評分:9.3

出版社:人民郵電出版社

出版年份:2010-6

頁數:804

內容簡介:

這是一部傳世之作!頂級網路編程專家Bill Fenner和Andrew M. Rudoff應邀執筆,對W. Richard Stevens的經典作品進行修訂。書中吸納了近幾年網路技術的發展,增添了IPv6、SCTP協議和密鑰管理套接字等內容,深入討論了最新的關鍵標准、實現和技術。

書中的所有示例都是在UNIX系統上測試通過的真實的、可運行的代碼,繼承了Stevens一直強調的理念:「學習網路編程的最好方法就是下載這些程序,對其進行修改和改進。只有這樣實際編寫代碼才能深入理解有關概念和方法。」讀者可以從圖靈網站(www.turingbook.com)本書網頁免費注冊下載這些示例的源代碼。

本書為UNIX網路編程提供全面的指導,是網路研究和開發人員公認的權威參考書,無論網路編程的初學者還是網路專家都會大受裨益。

作者簡介:

W. Richard Stevens(1951—1999) 國際知名的UNIX和網路專家,備受贊譽的技術作家。生前著有《TCP/IP詳解》(三卷)、《UNIX環境高級編程》和《UNIX網路編程》(兩卷),均為不朽的經典著作。

Bill Fenner AT&T實驗室的主要技術人員,專攻IP多播、網路管理和測量,他是IETF路由的領域主管之一,負責審批作為RFC出版的所有路由相關文檔。

Andrew M. Rudoff Sun公司的資深軟體工程師,專攻網路、操作系統內核、文件系統和高可用性軟體體系結構。

F. VC游戲編程與網路編程誰有前途

這兩個前途是差不多的,你應該按你自己的興趣學,還有技術有學精有學廣,完全看你自己了。學精了你可以成為一個技術高手,但你也只是技術高手了。學廣了你很好轉其它的方面,或者項目經理或者構架師,畢竟現在軟體工程師的生活不那麼好過,當然如果你是一個性格比較內向,不太會說話,做事情比較膽小的人,你還是專心搞技術吧,這樣可以無視自己的缺點。
你現在還是學生,所以最好還是打好基礎,vc的基礎要打好,網路和圖形的基礎也要打好。等你工作了,你自然會明白要學什麼了。
還有,很贊同上面一位的話,現在的中國已經容納不下一張平靜的書桌了,有彷徨的時間,隨便找一本書來看你都多懂很多東西了。相信我,你現在學什麼都是有用的。
另外,看了下有些人的話,說什麼什麼好學,lz你知道價值規律吧。我告訴你。越好學的東西,會的人越多,你越不值錢。我這個意思也不是說一定要找最難學的,但是,一定不要找最簡單的,除非你只是想了解下軟體開發,以後做相關事情,不然你會泯然眾人矣。

G. 使用C語言寫一個關於SCTP通信協議的模擬程序

具體去我空間看

//*********************************************
//功能:LPC2103的UART0演示
//內容:上位機PC以9600的波特率向LPC2103發送一個字元
// LPC2103再返回該字元
#include<lpc2103.h>
#define Fosc 11059200 //晶振
#define Fcclk Fosc*5 //系統頻率
#define Fpclk Fcclk/4 //PCLK
#define UART_bps 9600 //波特率
#define u8 unsigned char
//以下是函數聲明
void uart_ini(void);
u8 get_char(void);
void put_char(u8);
void put_string(u8*);

int main()
{
u8 zifu;
uart_ini(); //UART初始化
put_string("Please input a char:"); //輸出字元串
while(1)
{
zifu=get_char(); //接收一個字元
put_string("\nYou have sent:");
put_char(zifu); //發送該字元

}
}

//UART初始化
void uart_ini()
{
unsigned short Fdiv;
APBDIV=0; // Fpclk = Fcclk/4
PINSEL0=0x05; //選擇P0.0和P0.1為TXD0和RXD0
U0LCR=0x80; //除數鎖存訪問位打開
Fdiv=(Fpclk/16)/UART_bps;//波特率bps=(Fpclk/16)/(U0DLM:U0DLL),計算(U0DLM:U0DLL)
U0DLM = Fdiv / 256; //U0DLM放除數高八位
U0DLL = Fdiv % 256; //U0DLL放除數低八位
U0LCR=0x03; //關閉除數鎖存訪問位(這時RBR,THR處於可定址狀態),並設定一個字元的位寬為8位
}

//接收一個字元
u8 get_char()
{
while((U0LSR&0x01)==0); //等待接收完成
return(U0RBR); //返回接收的字元
}

//發送一個字元
void put_char(u8 byte)
{
U0THR=byte; //發送一個字元
while((U0LSR&0x40)==0); //等待發送完畢
}

//發送字元串
void put_string(u8 *p)
{
for(;*p!='\0';p++) //如果不是結束符,就發送
put_char(*p);
}
//**********************************************************

H. 什麼是網路協議請簡要說明之。請寫出五種常用的網路協議。

網路協議為計算機網路中進行數據交換而建立的規則、標准或約定的集合。

劃分

1、物理層:乙太網、數據機、電力線通信(PLC)、SONET/SDH、G.709、光導纖維、同軸電纜、雙絞線等。

2、數據鏈路層:Wi-Fi(IEEE 802.11)、WiMAX(IEEE 802.16)、ATM、DTM、令牌環、乙太網、FDDI、幀中繼、GPRS、EVDO、HSPA、HDLC、PPP、L2TP、PPTP、ISDN、STP、CSMA/CD等。

3、網路層協議:IP (IPv4、IPv6)、ICMP、ICMPv6、IGMP、IS-IS、IPsec、ARP、RARP、RIP等。

4、傳輸層協議:TCP、UDP、TLS、DCCP、SCTP、RSVP、OSPF等。

5、應用層協議:DHCP、DNS、FTP、Gopher、HTTP、IMAP4、IRC、NNTP、XMPP、POP3、SIP、SMTP、SNMP、SSH、TELNET、RPC、RTCP、RTP、RTSP、SDP、SOAP、GTP、STUN、NTP、SSDP、BGP 等。



(8)sctp編程擴展閱讀

網路協議通常由語法,語義和定時關系3部分組成。網路傳輸協議或簡稱為傳送協議(Communications Protocol),計算機通信的共同語言。最普及的計算機通信為網路通信,所以「傳送協議」一般都指計算機通信的傳送協議,如:TCP/IP、NetBEUI等。

然而,傳送協議也存在於計算機的其他形式通信,例如:面向對象編程裡面對象之間的通信;操作系統內不同程序之間的消息,都需要有一個傳送協議,以確保傳信雙方能夠溝通無間。

I. 如何用recvmsg和sendmsg來編寫sctp的程序

I.
msghdr 與 cmsghdr

struct msghdr {

void * msg_name;

int msg_namelen;

struct iovec * msg_iov;

unsigned long msg_iovlen;

void * msg_control;

unsigned long msg_controllen;

unsigned msg_flags;

};

結構成員可以分為下面的四組:

1.
套介面地址成員 msg_name 與 msg_namelen ; msg_name
指向要發送或接收信息的套介面地址。 msg_namelen 指明了這個套介面地址的長度。
msg_name 在調用 recvmsg 時指向接收地址,在調用 sendmsg 時指向目的地址。

2.
I/O 向量引用 msg_iov 與 msg_iovlen 它是實際的數據緩沖區,這個
msg_iovlen 是 msg_iov 的個數,不是長度。 msg_iov 成員指向一個
struct iovec 數組。

3.
附屬數據緩沖區成員 msg_control 與 msg_controllen ,msg_control 指向附屬數據緩沖區,而
msg_controllen 指明了緩沖區大小。

4.
接收信息標記位 msg_flags

struct iovec

{

void *iov_base;

unsigned long iov_len;

};

有了這個 iovec ,就可以使用 readv 和 writev 函數在一次函數調用中讀取或是寫入多個緩沖區,顯然比多次 read , write 更有效率。 readv 和 writev 的函數原型如下:

#include

ssize_t writev(int fildes, const struct iovec *iov, int iovcnt);

ssize_t readv(int fildes, const struct iovec *iov, int iovcnt);

struct cmsghdr {

unsigned long cmsg_len; int cmsg_level;

int cmsg_type;

};

· cmsg_len 附屬數據的位元組數,這包含結構頭的尺寸,這個值是由 CMSG_LEN() 宏計算的;

· cmsg_level 表明了原始的協議級別 ( 例如, SOL_SOCKET) ;

· cmsg_type 表明了控制信息類型 ( 例如, SCM_RIGHTS ,附屬數據對象是文件描述符; SCM_CREDENTIALS ,附屬數據對象是一個包含證書信息的結構 )

msghdr 和 cmsghdr: Linux 系統為這些結構提供了一系列的宏來簡化我們的工作,這些宏可以在不同的 UNIX 平台之間進行移植:

#include

struct cmsghdr *CMSG_FIRSTHDR(struct msghdr *msgh);

輸入參數:指向 struct msghdr 結構的指針; 返回指向附屬數據緩沖區內的第一個附屬對象的 struct cmsghdr 指針。如果不存在附屬數據對象則返回的指針值為 NULL 。

struct cmsghdr *CMSG_NXTHDR(struct msghdr *msgh, struct cmsghdr *cmsg);

輸入參數:指向 struct msghdr 結構的指針,指向當前 struct cmsghdr 的指針;

這個用於返回下一個附屬數據對象的 struct cmsghdr 指針,如果沒有下一個附屬數據對象,這個宏就會返回 NULL

size_t CMSG_SPACE(size_t length);

輸入參數:附屬數據緩沖區中的對象大小; 計算 cmsghdr 頭結構加上附屬數據大小,並包括對其欄位和可能的結尾填充字元,注意 CMSG_LEN() 值並不包括可能的結尾填充字元。 CMSG_SPACE() 宏對於確定所需的緩沖區尺寸是十分有用的。 注意如果在緩沖區中有多個附屬數據,一定要同時添加多個 CMSG_SPACE() 宏調用來得到所需的總空間。

void *CMSG_DATA(struct cmsghdr *cmsg)

輸入參數:指向 cmsghdr 結構的指針 ;

返回跟隨在頭部以及填充位元組之後的附屬數據的第一個位元組 ( 如果存在 ) 的地址。

size_t CMSG_LEN(size_t length)

輸入參數:附屬數據緩沖區中的對象大小; 計算 cmsghdr
頭結構加上附屬數據大小,包括必要的對其欄位,這個值用來設置 cmsghdr 對象的 cmsg_len 成員.

int sendmsg(int, const struct msghdr *msg, unsigned int
flags)

int recvmsg(int s, struct msghdr *msg, unsigned int flags)

s, 套接字通道,對於 sendmsg 是發送套接字,對於 recvmsg 則對應於接收套接字;
msg ,信息頭結構指針;
flags , 可選的標記位, 這與 send 或是 sendto
函數調用的標記相同。
函數的返回值為實際發送 / 接收的位元組數。否則返回 -1 表明發生了錯誤

sctp
從協議棧的角度看,於tcp,udp同等級別的層次上的。具有tcp和udp不同的優點。從傳輸的角度看,它可以象tcp那樣點對點的那樣傳輸,也可以像udp那樣一對多那樣傳輸,但這兩種方式對於sctp來說都是建立連接的。下面就介紹這兩種方式的編程方式:

UDP那樣點對多點的方式(代碼片段):

sctpSK = socket(AF_INET, SOCK_SEQPACKET, IPPROTO_SCTP);

error = sctp_bindx(sctpSK, (struct sockaddr *)&tempSockAddr,
1, SCTP_BINDX_ADD_ADDR);

listen(sctpSK, 1);

typedef union {

struct sctp_initmsg init;

struct sctp_sndrcvinfo sndrcvinfo;

} _sctp_cmsg_data_t;

// buffer and variables used to read data from recvmsg control
messags

char
incmsg[CMSG_SPACE(sizeof(_sctp_cmsg_data_t))];

// data
buffer

struct
iovec iov;

// the
main msghdr structure used to receive/send messages

struct
msghdr inmessage;

struct
sockaddr_in msg_name;

memset(&inmessage, 0, sizeof(inmessage));

iov.iov_base = malloc(SCTP_RX_BUFFER_SIZE);

if
(iov.iov_base == NULL)

{

exit(EXIT_FAILURE);

}

iov.iov_len = SCTP_RX_BUFFER_SIZE;

inmessage.msg_name = &msg_name;

inmessage.msg_namelen = sizeof(msg_name);

inmessage.msg_iov = &iov;

inmessage.msg_iovlen = 1; //
number of iovs in the inmessage

inmessage.msg_control = incmsg;

inmessage.msg_controllen =
sizeof(incmsg);

received = recvmsg(sctpSK, &inmessage, MSG_WAITALL);

解析這個收到到的inmessage相應的代碼如下:

union sctp_notification {

struct
{

__u16
sn_type;

__u16 sn_flags;

__u32 sn_length;

}
sn_header;

struct
sctp_assoc_change sn_assoc_change;

struct
sctp_paddr_change sn_paddr_change;

struct
sctp_remote_error sn_remote_error;

struct
sctp_send_failed sn_send_failed;

struct
sctp_shutdown_event sn_shutdown_event;

struct
sctp_adaption_event sn_adaption_event;

struct
sctp_pdapi_event sn_pdapi_event;

};

J. 使用C語言寫一個關於SCTP通信協議的模擬程序

1991年4月,芬蘭人Linux Benedict Torvalds根據可以在低檔機上使用的MINIX設計了一個系統核心Linux 0.01,但沒有使用任何MINIX或UNIX的源代碼。通過USENET(就是新聞組)宣布這是一個免費的系統,主要在x86電腦上使用,希望大家一起來將它完善,並將源代碼放到了芬蘭的FTP站點上代人免費下載。本來他想把這個系統稱為freax,可是FTP的工作人員認為這是Linus的MINIX,就用Linux這個子目錄來存放,於是它就成了「Linux」。這時的Linux只有核心程序,還不能稱做是完整的系統,不過由於許多專業用戶(主要是程序員)自願地開發它的應用程序,並藉助Internet拿出來讓大家一起修改,所以它的周邊的程序越來越多,Linux本身也逐漸發展壯大起來。 運行Linux需要的配置並不高,支持眾多的PC周邊設備,並且這樣一個功能強大的軟體完全免費,其源代碼是完全公開的,任何人都能拿來使用。說到這里,各位可能懷疑這免費後面是不是隱藏著什麼?作者會心甘情願的把它拿出來而分文不取嗎?其實,它代表著軟體開發的另一種概念:那就是基於GNU的版權制度。 版權是為了保護作者應有利益而設立的制度,但時至今日它卻對科技的發展造成了一定的阻礙。例如現在病毒的肆虐,就是因為Microsoft不肯將Windows的源代碼公開。殺毒軟體的廠商只好自己去鑽研OLE結構。還有,Intel為了保住自己的霸主地位,建立了一個個不許其它廠商使用的硬體規范,造成眾多開發者並不是為了提升技術而是為了兼容性而耗費資金和時間,這樣就造成了科研發展的混亂和壟斷。為了改變這種狀況,Richard M. Stallman在1984年創立了以生產免費軟體為目的的組織--Free Software Foundation(免費軟體基金會,簡稱FSF)。他認為:各個軟體公司為了自己的利益不公開源代碼會阻礙人類文明的發展,一個真正好的軟體是為了替人解決問題,應該散發給需要的人。他開發了一個叫做GNU的計劃,第一套軟體就是GNU Emacs(UNIX平台下強大的編輯器)。任何人都能免費拿到這個軟體和它的源代碼,於是許多人自發的修改這套軟體,為它增加功能。為了明確GNU的規范,Stallman發表了GNU General Public License和GNU Library General Public License授權聲明,根據這些聲明,所有的GNU軟體都可以被任何人下載、出售、復制和修改,但必須提供程序源代碼或者讓使用者知道從哪裡獲得源代碼!但不論免費或者收費,任何得到這些軟體的使用者都有和提供者同樣的權利,可以將它們贈送或出售。由於這個授權,GNU軟體像滾雪球一樣越來越多,功能也越來越強。當然,這樣做也有不良的效果,如果開發商的利潤減少了那麼就沒有人願意真正開發軟體了,畢竟人還是要吃飯的呀。不過隨著Internet的盛行,眾越來越容易得到各種各樣的軟體,而且大多隻為一時之需,用完之後根本不會再用,一個軟體的使用壽命就大大縮短,在這種情況下,傳統的電子出版行業應該做出相應的調整。 Linux核心程序的著作權歸Linus本人所有,其它應用程序歸各自的作者所有,但按照GNU授權,任何人都可以採取收費或免費方式來發行Linux,並在符合該授權的規范下做修改。這樣就有了一大批的免費程序移植到了Linux上,包括GNU Emacs、XFree86、Mozilla等經典軟體,並且在不斷壯大中。由於源代碼是公開的,任何一個使用Linux的人在添置了新硬體後都能自己編寫驅動程序,所以Linux對新硬體的支持己經超過了許多專業UNIX系統。Linux的成功如果沒有Internet是不可能的,因為Linux實際上是世界各地眾多程序員共同開發的結果。 現在的Linux經過數次改版(包括核心的升級和周邊程序的完善),己經發展成了一個遵循POSIX標準的純32位多工操作系統,64位版本也在開發之中。Linux可以兼容大部分的UNIX系統,很多UNIX的程序不需要改動,或者很少的改變就可以運行於Linux環境;內置TCP/IP協議,可以直接連入Internet,作為伺服器或者終端使用;內置JAVA解釋器,可直接運行JAVA源代碼;具備程序語言開發、文字編輯和排版、資料庫處理等

熱點內容
dos重命名文件夾 發布:2025-01-19 03:34:13 瀏覽:422
華為怎麼清除開機密碼 發布:2025-01-19 03:34:03 瀏覽:985
java編譯成class文件過程 發布:2025-01-19 03:31:21 瀏覽:983
androidactivity銷毀 發布:2025-01-19 03:29:09 瀏覽:386
做訪問學者要多少錢 發布:2025-01-19 03:20:04 瀏覽:284
蘋果7的存儲空間在哪 發布:2025-01-19 03:10:35 瀏覽:583
2012文件伺服器如何新建用戶 發布:2025-01-19 02:43:10 瀏覽:888
android復試 發布:2025-01-19 02:39:11 瀏覽:654
c獲取文件夾中 發布:2025-01-19 02:33:48 瀏覽:551
如何查看360瀏覽器保存的密碼 發布:2025-01-19 02:27:14 瀏覽:94