目前,我正在學習用C/C++ ...我有經驗。NET但不是在C的網絡編程(ESP:在UNIX網絡編程)recvfrom的 - 如何緩衝區轉換爲字符串
的問題我現在面對的是,當我收到消息時,我喜歡將它分成兩部分。消息的格式將類似於[command] filepath
(例如:get a.txt
或put a.txt
)
我正在使用recvform來接收消息。
int recvfrom(int sockfd, void *buf, int len, unsigned int flags,
struct sockaddr *from, int *fromlen);
的問題是,我不知道如何「無效*迷」轉換爲字符串,這樣我可以做String.Split(」「),以獲得命令和文件名。
任何人都可以請解釋我一種將「void * buff」轉換爲字符串的方法嗎?
謝謝。你的意思是,像下面那樣? char * message =「get a.txt」; returnStatus = SENDTO(sockd,消息,strlen的(的argv [3])+ 1,0, \t \t \t \t(結構sockaddr *)&xferServer,的sizeof(xferServer)); – 2010-08-30 16:56:30
@Michael:是 - 或多或少......如果你這樣發送,調整strlen()以應用於消息而不是argv [3],那麼你需要包含尾隨NUL,因爲+1,然後recvfrom( )會有一個以null結尾的字符串傳入。 – 2010-08-30 17:54:27