Re: [問題] socket programming write,read問題

看板C_and_CPP (C/C++)作者時間15年前 (2011/03/16 23:38), 編輯推噓1(104)
留言5則, 4人參與, 最新討論串2/2 (看更多)
不好意思 資質駑鈍~~" 想要問一下推文大大的寫法結構 內部的傳遞 跟原po的差在哪 才導致結果不同 是如果用原Po的寫法要寫成 int *a; *a = 100; server: write(newsockfd, a ,siezof(*a)); ???還是根本不是這個問題~~ 感謝大大指點了> < 作者 go750626 (..........) 看板 C_and_CPP 標題 [問題] socket programming write,read問題 時間 Wed Mar 16 20:02:21 2011 ─────────────────────────────────────── 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Linux 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 最近嘗試寫一個socket小程式 server,client連線已經建立好 write,read char array也都讀得到 請問一下 write可以丟入int嗎? 今天測試一直不成功 類似這樣: int *a; *a = 100; server: write(newsockfd, a ,siezof(a)); client: int *b; read(sockfd,b,sizeof(b)); 不知可行嗎? 哪邊有錯? 可以的話如果要讓server連丟3個整數 client可以分別存入3個變數要怎麼做? 就我所道一直丟的話 write的buffer會一直塞 那client要怎麼區別? 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.151.79

03/16 20:20,
何不說說你嘗試的結果? 錯誤訊息是什麼?
03/16 20:20

03/16 20:21,
int a = 100; write(newsockfd, (void *)&a ,siezof(a));
03/16 20:21
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

03/16 20:21,
int b; read(sockfd,(void *)&b,sizeof(b));
03/16 20:21

你原本的程式碼犯了十三戒第三
-- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.8.136.122

03/16 23:51, , 1F
a 是一個 pointer 但是他指向哪裡?
03/16 23:51, 1F

03/16 23:56, , 2F
你先想想,如果寫個函數,能從 arg1 傳入的記憶體位址開始
03/16 23:56, 2F

03/16 23:56, , 3F
複製 n 位元組,到另一個固定的位址要怎麼寫。n 用arg2 傳
03/16 23:56, 3F

03/17 00:34, , 4F
還是十三戒之三
03/17 00:34, 4F

03/17 21:10, , 5F
恩 感謝 在回去思考一下...
03/17 21:10, 5F
文章代碼(AID): #1DWDbtFP (C_and_CPP)
文章代碼(AID): #1DWDbtFP (C_and_CPP)