2.有了socket,那就可以用它來訪問網(wǎng)絡(luò)了
不過你不要高興得太早,要想訪問網(wǎng)絡(luò),還得有些基本的條件(和編程無關(guān)的我就不提了):a. 要確定本機(jī)的IP和端口,socket只有與某一IP和端口綁定,才能發(fā)揮強(qiáng)大的威力。b. 得有協(xié)議吧(否則誰認(rèn)得你這發(fā)送到網(wǎng)絡(luò)的是什么呀)。想要復(fù)雜的,我們可以自己來定協(xié)議。但是這個(gè)就不在這篇里提了,我這里介紹兩種大家最熟悉不過的協(xié)議:TCP & UDP。(別說你不知道,不然...不然...我不告訴你)
如果具備了基本的條件,就可以開始用它們訪問網(wǎng)絡(luò)了。來看看步驟吧:
a. 建立一個(gè)套接字
b. 綁定本機(jī)的IP和端口
c. 如果是TCP,因?yàn)槭敲嫦蜻B接的,所以要利用ListenO()方法來監(jiān)聽網(wǎng)絡(luò)上是否有人給自己發(fā)東西;如果是UDP,因?yàn)槭菬o連接的,所以來者不拒。
d. TCP情況下,如果監(jiān)聽到一個(gè)連接,就可以使用accept來接收這個(gè)連接,然后就可以利用Send/Receive來執(zhí)行操作了。而UDP,則不需要accept, 直接使用SendTo/ReceiveFrom來執(zhí)行操作。(看清楚哦,和TCP的執(zhí)行方法有區(qū)別,因?yàn)閁DP不需要建立連接,所以在發(fā)送前并不知道對方的IP和端口,因此需要指定一個(gè)發(fā)送的節(jié)點(diǎn)才能進(jìn)行正常的發(fā)送和接收)
e. 如果你不想繼續(xù)發(fā)送和接收了,就不要浪費(fèi)資源了。能close的就close吧。