socket開發中乙個小問題

2022-08-27 20:57:09 字數 773 閱讀 5766

首先宣告,本人是c開發方面的菜鳥,目前正在努力學習中,所以哪位高手看到本文所提的問題很弱智,莫要嘲笑!

此文沒有什麼高明的演算法,只作為自己學習過程的乙個筆記,總結經驗,提醒自己而已!

最近本人在學習linux下的socket程式設計,要實現乙個檔案傳輸的程式。client端傳送檔案,server端接收檔案。傳送接收函式用的是send(),recv(),檔案讀寫用的是fread(),fwrite()函式。

我首先模仿乙個現成的檔案傳輸程式,寫傳送程式和接收程式。結果程式在執行過程中老是卡在那兒不動。我用gdb除錯,發現server接收端在檔案接收完之後一直阻塞在recv()函式,似乎一直在等待接收資料,而client傳送端也阻塞在recv()函式。

這下我發現了問題所在,原來我打算在server端檔案接收完之後,傳送乙個確認資訊,client端接收到確認資訊之後就結束。問題來了,client傳送端肯定先知道檔案已傳送完了,只要從檔案裡讀不出資訊就可以了。但是server接收端不知道啊,它還在傻乎乎的等待接收資訊。client端傳送完之後也在傻乎乎的等待接收完畢確認資訊。雙方都在等待接收。這下雙方都阻塞了。這是設計流程的錯誤!

所以,以後設計socket通訊程式,資訊傳送完畢的訊號一定要傳送端首先傳送,接收端之後才能確認接收完畢。

乙個小問題

error c2679 binary no operator defined which takes a right hand operand of type class smanip int or there is no acceptable conversion 除錯了好久,就是找不出問題在哪。...

乙個小問題。

drop table student create table student sno number 10 sname varchar2 10 sage int insert into student values 1,aa 21 insert into student values 1,aa 21...

乙個小問題

設機器字長w ww位元,u w w u cu w,w uc u w,w uc。將w ww分為c cc個連續長度為u uu位元的區間,稱為u uu區間。實現操作 對於乙個機器字x xx,如果乙個u uu區間非0,則將區間最右bit置1,其餘為0。要求演算法時間為o 1 o 1 o 1 考慮異或操作。對...