• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            那誰的技術(shù)博客

            感興趣領(lǐng)域:高性能服務(wù)器編程,存儲(chǔ),算法,Linux內(nèi)核
            隨筆 - 210, 文章 - 0, 評(píng)論 - 1183, 引用 - 0
            數(shù)據(jù)加載中……

            第一個(gè)socket程序-C\S模式的文件傳輸程序

            這也許是最簡單的socket程序了,功能很簡單,采用TCP協(xié)議寫出一個(gè)client端和一個(gè)server端,在client端輸入一個(gè)文件的全路徑然后在server端查找這個(gè)文件傳送回client端然后把文件保存在client端的C:根目錄下面.

            第一個(gè)socket程序,花費(fèi)了我不少的功夫,犯下了不少的低級(jí)愚蠢的錯(cuò)誤,"萬事開頭難",為紀(jì)念之,把代碼放在這里.


            下載地址:
            http://www.shnenglu.com/Files/converse/SocketDemo.rar

            posted on 2006-08-03 21:38 那誰 閱讀(12270) 評(píng)論(18)  編輯 收藏 引用 所屬分類: 網(wǎng)絡(luò)編程

            評(píng)論

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            呵呵,多謝了
            2006-08-07 00:13 | viven

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            哦,上次也是你叫我來看你的文章的,原來你就是李闖,!你真厲害.
            2006-08-28 13:04 | 羅家峰

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            thanks a lot.
            real programmer!
            2006-09-02 15:40 | inforpic

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            @羅家峰
            糾正一下,是"創(chuàng)"不是"闖"~~!!-_-
            2006-09-02 23:09 | 創(chuàng)系

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            ding
            2008-04-27 19:22 | ss

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            不錯(cuò)不錯(cuò)
            頂一個(gè)
            2008-06-20 17:31 | rwei

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            我剛寫完自己的第一個(gè)文件傳輸程序,并測試完,上網(wǎng)看看別人是怎么寫的,寫得不錯(cuò),很有借鑒意義。
            1.學(xué)到了一個(gè)新的函數(shù) _splitpath,以前是采用strrchr 找'\\'的。
            2.網(wǎng)絡(luò)傳輸帶路徑的文件名字符串需要特殊處理,比如'\' 轉(zhuǎn)化為'\\'?,有這個(gè)必要嗎,我還得測試測試。(經(jīng)過測試不添加也可,加'\'應(yīng)該是針對(duì)初始化時(shí)吧)

            你說“犯下了不少的低級(jí)愚蠢的錯(cuò)誤”,如果總結(jié)出來就好了,畢竟很多搜索文件傳輸程序的人是初中級(jí)水平。以我個(gè)人看來有兩處最需要改進(jìn):
            1.用strncpy ,strncat等代替strcpy,strcat等函數(shù),防止最常見的緩沖區(qū)溢出;
            2.原程序中分配文件緩沖區(qū)的方法需要改進(jìn),不適合超大文件的傳輸,畢竟一次開辟幾百兆甚至更多的內(nèi)存空間可能會(huì)導(dǎo)致問題,其實(shí)可以開辟一塊不大的內(nèi)存,比如一個(gè)包能容納的大小,每接收一次就直接寫入磁盤中。
            就說這么兩點(diǎn),看對(duì)后面訪問的人有沒有一點(diǎn)幫助。
            2008-07-14 13:01 | 匿名有益健康

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            呵呵!
            2008-07-26 08:29 | lengbufang

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            謝謝了!
            2008-08-29 08:09 | music

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            謝謝分享,結(jié)構(gòu)設(shè)計(jì)地相當(dāng)巧妙

            進(jìn)一步明白了C++中結(jié)構(gòu)體和類關(guān)系,原來他們簡直就是一回事,
            只有一點(diǎn)不同:默認(rèn)權(quán)限,前者是public后者是private
            2008-10-23 21:19 | huangcongjie

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            真是太好了。
            2009-06-16 16:50 | faileast

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            感謝分享
            2010-03-11 14:52 | 事實(shí)上

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            你的這個(gè)編譯時(shí)要選好ip,這應(yīng)該先說清楚的,呵呵。然后就是傳稍微大點(diǎn)的東西如100K的圖片會(huì)傳錯(cuò)數(shù)據(jù)。估計(jì)是緩沖區(qū)的問題,活著讀取文件的問題,我沒有細(xì)究。
            2010-05-04 18:05 | cx

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            將您的代碼拷貝后需要做哪些修改才能運(yùn)行啊
            2010-12-08 02:18 | 士大夫

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            運(yùn)行后無法輸入的呢
            2010-12-08 02:20 | 士大夫

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            這個(gè)程序我看了下,recv和send在返回時(shí)沒有做驗(yàn)證,在網(wǎng)絡(luò)傳輸必須查看已發(fā)送數(shù)據(jù)大小如果沒發(fā)送完畢需要接著發(fā)
            2011-07-15 13:23 | hook

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            李創(chuàng)的文章寫得確實(shí)好 尤其是那個(gè)設(shè)計(jì)模式 不錯(cuò) 現(xiàn)在在哪家公司發(fā)展呢?
            2011-11-06 11:37 | jemmyLiu

            # re: 第一個(gè)socket程序-C\S模式的文件傳輸程序  回復(fù)  更多評(píng)論   

            你好,我今晚試了你的這個(gè)程序,但是當(dāng)把客戶端的程序裝在另一個(gè)電腦上時(shí),服務(wù)器端程序要把clinetaddr 地址賦值才能連接成功,但是仍然有兩個(gè)問題:1:客戶端輸入文件路徑時(shí)不能識(shí)別,顯示文件不存在;2,即便是文件路徑正確,服務(wù)器端顯示收到文件,但是服務(wù)器端的C盤根目錄下找不到發(fā)送的文件。 請(qǐng)問該如何改進(jìn)?
            2012-08-02 22:00 | 張文義
            久久国产精品成人影院| 久久国产亚洲精品| 91麻豆精品国产91久久久久久| 97久久精品无码一区二区| 91精品国产色综久久| 久久99久久99精品免视看动漫 | 亚洲精品国产自在久久| 久久综合狠狠综合久久综合88| 精品久久久无码中文字幕| 亚洲精品无码久久千人斩| 亚洲精品国产成人99久久| 国内精品伊人久久久久777| 精品久久人人妻人人做精品| 久久精品国产免费观看三人同眠| 一本一道久久精品综合| 久久综合香蕉国产蜜臀AV| 久久人人爽人人精品视频| 国产午夜精品理论片久久影视| 欧美亚洲国产精品久久| 国产99久久久久久免费看| 久久精品国产亚洲AV香蕉| 久久久久久久91精品免费观看| 精品免费久久久久国产一区| 精品久久久久久成人AV| 成人午夜精品无码区久久| 亚洲欧美久久久久9999| 精品一久久香蕉国产线看播放| 国产69精品久久久久777| 久久久久人妻一区精品色| 久久精品国产99国产精品亚洲| 欧美一级久久久久久久大| 国产精品永久久久久久久久久| 国产一级做a爰片久久毛片| 久久精品麻豆日日躁夜夜躁| 久久人人爽人人人人爽AV | 久久99国产综合精品免费| 久久久久久精品免费免费自慰| 国产香蕉久久精品综合网| 奇米影视7777久久精品人人爽| 亚洲精品乱码久久久久久不卡| 久久精品这里只有精99品|