在Linux系統(tǒng)中,Sock(套接字)是一種用于進(jìn)程間通信(IPC, Inter-Process Communication)和網(wǎng)絡(luò)通信的技術(shù)
套接字可以分為兩類:基于文件的套接字(如Unix域套接字)和基于網(wǎng)絡(luò)的套接字(如TCP/IP套接字)。
Unix域套接字:這種套接字用于同一臺主機(jī)上的進(jìn)程間通信。它們不需要網(wǎng)絡(luò)協(xié)議棧的支持,因此性能更高。Unix域套接字在文件系統(tǒng)中表示為一個(gè)特殊類型的文件。
TCP/IP套接字:這種套接字用于網(wǎng)絡(luò)通信,支持點(diǎn)對點(diǎn)的數(shù)據(jù)傳輸。它們基于TCP(傳輸控制協(xié)議)或UDP(用戶數(shù)據(jù)報(bào)協(xié)議)等協(xié)議。
在Linux系統(tǒng)中,套接字通常使用socket()
函數(shù)創(chuàng)建,然后使用bind()
、listen()
、accept()
、connect()
等函數(shù)進(jìn)行操作。應(yīng)用程序可以通過套接字發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)進(jìn)程間通信或與其他計(jì)算機(jī)上的進(jìn)程通信。