Linux网络编程------网络编程基础
Socket(套接字),類似文件描述符,三種
1、流式套接字(SOCK_STREAM):可以提供可靠的、面向連接的通訊流,它使用TCP協議。TCP保證了數據傳輸的正確性和順序性。
2、數據報套接字(SOCK_DGRAM):定義了一種無連接的服務,數據通過相互獨立的報文進行傳輸,是無序的,并且不保證可靠,無差錯,它使用數據報協議(UDP)。
3、原始套接字(SOCK_RAW):直接基于IP協議。
網絡地址
struct sockaddr用于記錄網絡地址:
struct sockaddr
{
u_short sa_family;//協議族,采用“AF_xxx”形式,如:AF_INET(IP協議族)
? ? ?char sa_data[14];//14字節特定協議地址
}
但常用的是sockaddr_in記錄網絡地址
struct sockaddr_in
{
short int sin_family;//協議族
? ? ? unsigned short int sin_port;/*端口號*/
? ? ? struct in_addr sin_addr;//協議特定地址
? ? ? unsigned char sin_zero[8];/*填0*/
}
struct in_addr{
union{
struct{
unsigned char s_b1,s_b2,s_b3,s_b4;
}S_un_b;
struct{
unsigned short s_w1,s_w2;
}S_un_w;
unsigned long S_addr;
}S_un_w;
}IN_ADDR;
網絡上bigendian(低字節先傳輸)
socket 編程函數
socket:創建套接字
bind:用于綁定IP地址和端口號到socket
connect:該函數用于與服務器建立連接
listen:設置服務器能處理的最大連接要求
accept:等待來自用戶客戶端的socket連接請求
send:發送數據
recv:接收數據
轉載于:https://www.cnblogs.com/liutianyi10/p/3851619.html
總結
以上是生活随笔為你收集整理的Linux网络编程------网络编程基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: go语言初记
- 下一篇: linux PHP 编译安装参数详解