影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

 找回密碼
 注冊(cè)(開放注冊(cè))
查看: 8207|回復(fù): 1
打印 上一主題 下一主題

[軟件] 如何實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)通信

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2006-4-16 11:17:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
QQ聊天大家多不陌生,但是它是如何實(shí)現(xiàn)的呢??
實(shí)現(xiàn)方式有多種在這里不一一列舉出來
軟件平臺(tái)---VC6.0或者VC7.0
一:基本原理
所謂點(diǎn)對(duì)點(diǎn)通信就是在各客戶端創(chuàng)建一個(gè)所謂的 “點(diǎn)”,就是我們常說的SOCKET
通過SOCKET來實(shí)現(xiàn)通信,不過這種方式缺點(diǎn)是只能實(shí)現(xiàn)簡單文本信息的傳送
二:實(shí)現(xiàn)過程原理
   (一) 服務(wù)端創(chuàng)建
   注意很多書上把SERVER 翻譯為服務(wù)器這是不對(duì)的
   創(chuàng)建SOCKET
      創(chuàng)建SOCKADDR結(jié)構(gòu)(在這個(gè)結(jié)構(gòu)里存放本機(jī)的IP地址等)
   邦定BIND
      將邦定后的SOCKET設(shè)置為偵聽覺狀態(tài) listen
      接受客戶端的----連接請(qǐng)求 accept
     當(dāng)然作為服務(wù)端我們不可能只和一個(gè)客戶端通信,那我們用一個(gè)數(shù)組來存放接受后的套接字
   SOCKET sockMsg[MAX_CONNECTION_NUM];
      sockMsg =  accept();//參數(shù)略
   這是我們就可以利用套接字sockMsg和客戶端進(jìn)行通信了
   上面所說比較籠統(tǒng),但是大致的框架已經(jīng)出來了,至于這些函數(shù)怎么用,我就不多說,
各位自己去查幫助文檔(就是MSDN)
    各位切忌 在進(jìn)行網(wǎng)絡(luò)通信之前我們應(yīng)該代開網(wǎng)絡(luò)設(shè)備 利用函數(shù)WSAStart 函數(shù)
   (二):客戶端
    客戶端的創(chuàng)建比較簡單
    用過QQ得人,可以下載最新的QQ版本,就會(huì)發(fā)現(xiàn)在設(shè)置里面有這本一項(xiàng) 服務(wù)器的選擇(具體名稱不記得,反正肯定有這項(xiàng)),這個(gè)有什么用呢????
    在創(chuàng)建客戶端的時(shí)候我們不用像服務(wù)端那么麻煩
    首先創(chuàng)建一個(gè)空SOCKET(就是未邦定且為處于listen狀態(tài) )
        然后就是 connect   但是必須有服務(wù)端的ip 不然我們就無法進(jìn)行連接
    完成這些后我們就可以進(jìn)行和服務(wù)段的通信
三 具體實(shí)現(xiàn)過程
   (一) 端創(chuàng)建
    首先弄清概念服務(wù)端不是服務(wù)器,客戶端不是客戶機(jī)
    在每個(gè)客戶端 我們 既是 服務(wù)端也是客戶端
    所謂上面介紹的兩個(gè)端我們必須多得建立,應(yīng)為我們不可能只是等待別人來主動(dòng)和我們進(jìn)行連接或者是
我們主動(dòng)去和別人連接不接受別人發(fā)過來的連接請(qǐng)求
    其次我們要考慮的是程序是順序運(yùn)行的,一段代碼不可能反復(fù)運(yùn)行(不要在這個(gè)問題上和我爭(zhēng)論)
比如我們listen 并 accept  或 connect .這些職能執(zhí)行一次 也就是進(jìn)行一個(gè) 連接,如何來控制讓程序時(shí)刻
的處于這種狀態(tài),如果我們用無線循環(huán)來做,那么我們將無法對(duì)程序進(jìn)行其他的操作。怎么辦??
    聰明的你一定會(huì)想到開線程來做
現(xiàn)在就怎么開線程以及開那些線程
    仔細(xì)分析一下我們會(huì)發(fā)現(xiàn)以下幾種狀態(tài),必須時(shí)刻保持
    listen 并 accept   ,recv,
        做法
    listen和accept必須放在一個(gè)線程里面做
    recv單獨(dú)開革線程
由于代碼篇幅較大,在上面我只是簡單的說了框架結(jié)構(gòu)和原理。這里不知道可不可以直接插入word文檔,如果刻意的話,我們將我的代碼共享給大家的。實(shí)在是不好意思
    我不想別人問我什么函數(shù)該怎么用,因?yàn)檫@些在幫助文檔里面有。如果有具體細(xì)節(jié)不明白 ,偶還是可以說說的
2#
發(fā)表于 2006-4-24 17:49:44 | 只看該作者
字體沒設(shè)好,看起來 吃力。

本版積分規(guī)則

手機(jī)訪問本頁請(qǐng)
掃描左邊二維碼
本網(wǎng)站聲明
本網(wǎng)站所有內(nèi)容為網(wǎng)友上傳,若存在版權(quán)問題或是相關(guān)責(zé)任請(qǐng)聯(lián)系站長!
站長電話:0898-66661599    站長聯(lián)系QQ:12726567   
站長微信:hainanok
請(qǐng)掃描右邊二維碼
www.myujob.com

小黑屋|手機(jī)版|Archiver|電子科大論壇-非清水河畔 ( 瓊ICP備10001196號(hào)-2 )

GMT+8, 2025-11-6 20:35 , Processed in 0.114676 second(s), 14 queries .

Powered by 校園招聘信息

© 2001-2020 電子科大論壇-非清水河畔校園招聘

快速回復(fù) 返回頂部 返回列表