91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: 其他
  • 標簽: socket??

資源簡介

網上的很多代碼都是將主函數中如何使用socket,卻對socket的內部實現很少提及,本代碼解決了這一問題,寫明了socket內部函數的實現過程。但是socket它的實現需要加進部分頭文件和調用下層的TCP、UDP,所以socket.c在編譯時會出現一定錯誤,但是并不妨害理解socket內部的實現過程。(這只是第一個版本,隨時更新)

資源截圖

代碼片段和文件信息

/***********************************************************************************************************************************
*項目名稱:TCP/IP協議棧
*模塊名稱:socket模塊
*模塊功能:
*組長:張磊
*作者:胡啟超
*時間:2011_8_3
************************************************************************************************************************************/

#include?“Configure.h“?
#include?“socket.h“
#include?“mbuf.h“

/***********************************************************************************************************************************
*函數名:Socket_Create
*功能描述:創建套接字,并指定其類型
*參數:type?TCP指定SOCK_STREAM??UDP指定SOCK_DGRAM
*返回值:成功時返回新創建的套接字的索引號,失敗時返回FALSE
*時間:2011_8_3?19:00
************************************************************************************************************************************/

uint8?Socket_Create(/*uint8?domain*/?uint8?type?/*uint8?protocol*/?)?{
uint8?i;
for(i=0?;?i if(socket_arry[i].EN?==?0)?{
socket_arry[i].EN?=?1;
????????????socket_arry[i].type?=?type;
socket_arry[i].domain?=?AF_INET;
sockFD?=?i;
return(sockFD);
}
else?continue;
}
return?FALSE;
?
}


/***********************************************************************************************************************************
*函數名:Socket_Bind
*功能描述:將創建的套接字與本地IP、端口號綁定
*參數:sockFD?指定套接字的索引號,addr是指向sockaddr結構體的指針,該結構體中存放著本地的IP和端口號
*返回值:綁定成功時返回TRUE
*時間:2011_8_3?19:05
************************************************************************************************************************************/

uint8?Socket_Bind(uint8?sockFD??struct?sockaddr?*?addr?/*?uint8?len*/)?{
socket_arry[sockFD].src_ip?[0]?=?addr->sin_addr[0];
socket_arry[sockFD].src_ip?[1]?=?addr->sin_addr[1];
socket_arry[sockFD].src_ip?[2]?=?addr->sin_addr[2];
socket_arry[sockFD].src_ip?[3]?=?addr->sin_addr[3];

socket_arry[sockFD].src_port?[0]?=?addr->sin_port[0];
socket_arry[sockFD].src_port?[1]?=?addr->sin_port[1];

return?TRUE;
}

功能描述
/***********************************************************************************************************************************
*函數名:Socket_Listen
*功能描述:監聽套接字,等待建立連接時三次握手
*參數:指定套接字的索引號
*返回值:當建立連接成功時返回TRUE,建立連接失敗時返回FALSE
*限制:該函數僅用于服務器端
*時間: 2011_8_3?19:10
************************************************************************************************************************************/

uint8?Socket_Listen(uint8?sockFD??/*uint16?backlog*/)?{
if?(sockFD? if?(socket_arry[sockFD].type?==?SOCK_STREAM)?{
????do?{
OSTimeDly(100);
}while(!(syn_lis));
//發送需要對方的ip和端口號,即將mbuf中的對方ip和端口號賦值給監聽的socket
socket_arry[sockFD].dst_ip?[0]?=?recvbuf->dst_ip[0]; ?/*從mbuf中取得*/
socket_arry[sockFD].dst_ip?[1]?=?recvbuf->dst_ip[1];
socket_arry[sockFD].dst_ip?[2]?=?recvbuf->dst_ip[2];
socket_arry[sockFD].dst_ip?[3]?=?recvbuf->dst_ip[3];

socket_arry[sockFD].dst_port?[0]?=?recvbuf->dst_p

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件??????12391??2011-08-03?23:12??socket?1.0\socket.c

?????文件???????1757??2011-08-03?23:17??socket?1.0\socket.h

?????目錄??????????0??2011-08-03?20:41??socket?1.0

-----------?---------??----------?-----??----

????????????????14148????????????????????3


評論

共有 條評論