請教TCP Client發送完一段字串后如何發送一個回車
我現在的發送端發送了字串 PRESET -a 1 (1后面有空格)
接收端收到:50 52 45 53 45 54 20 2D 61 20 31 20
這段字串后還需要一個 0D 我的指令才能控制接收端程式,那么這個 0D 在發送端該怎么寫,才能讓接收端收到 0D
也就是接收端需要收到:50 52 45 53 45 54 20 2D 61 20 31 20 0D 才能受控
感謝大神指教,新手不懂TCP
uj5u.com熱心網友回復:
電腦記憶體或檔案內容或傳輸內容只是一個一維二進制位元組陣列及其對應的二進制地址;人腦才將電腦記憶體或檔案內容或傳輸內容中的這個一維二進制位元組陣列及其對應的二進制地址的某些部分看成是整數、有符號數/無符號數、浮點數、復數、英文字母、阿拉伯數字、中文/韓文/法文……字符/字串、匯編指令、函式、函式引數、堆、堆疊、陣列、指標、陣列指標、指標陣列、陣列的陣列、指標的指標、二維陣列、字符點陣、字符筆畫的坐標、黑白二值圖片、灰度圖片、彩色圖片、錄音、視頻、指紋資訊、身份證資訊……
void HexDump(char *buf,int len,int addr) {
int i,j,k;
char binstr[80];
for (i=0;i<len;i++) {
if (0==(i%16)) {
sprintf(binstr,"%08x -",i+addr);
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
} else if (15==(i%16)) {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
sprintf(binstr,"%s ",binstr);
for (j=i-15;j<=i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
} else {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
}
}
if (0!=(i%16)) {
k=16-(i%16);
for (j=0;j<k;j++) {
sprintf(binstr,"%s ",binstr);
}
sprintf(binstr,"%s ",binstr);
k=16-k;
for (j=i-k;j<i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
}
}
uj5u.com熱心網友回復:
這不是我要的答案呀,
我問的是我要在發送的時候在PRESET -a 1 之后加什么
才能讓接收端收到
50 52 45 53 45 54 20 2D 61 20 31 20 0D
uj5u.com熱心網友回復:
'\r''\x0d'
uj5u.com熱心網友回復:
這兩個用過,都是不對的
uj5u.com熱心網友回復:
估計是你的協議沒分析清楚,傳送資料0D不一定是回車的意思,要看接收端怎么決議這個數字
uj5u.com熱心網友回復:
'\r'
'\x0d'
這兩個用過,都是不對的
估計是你的協議沒分析清楚,傳送資料0D不一定是回車的意思,要看接收端怎么決議這個數字
就是用TCP Client這個軟體測驗的呀,我的目的其實也不是一定要發回車,接收端在我發送的字串末尾能收到0D就行
uj5u.com熱心網友回復:
發你的發送代碼看一下uj5u.com熱心網友回復:
發你的發送代碼看一下
我現在的發送端發送了字串 PRESET -a 1 (1后面有空格)
接收端收到:
50 52 45 53 45 54 20 2D 61 20 31 20
但是我的接收端需要收到:
50 52 45 53 45 54 20 2D 61 20 31 20 0D
才能執行受控,問題就是怎么把0D加在后面發給他
uj5u.com熱心網友回復:
我在討論代碼,你在討論軟體,不是一個頻道,發送一個回車char * SendData="https://bbs.csdn.net/topics/PRESET -a 1 /n";
send(SocketID,(char*)&SendData,strlen(SendData)+1, 0);
就解決了,不是寫代碼的話,就沒法討論的
uj5u.com熱心網友回復:
我在討論代碼,你在討論軟體,不是一個頻道,發送一個回車
char * SendData="https://bbs.csdn.net/topics/PRESET -a 1 /n";
send(SocketID,(char*)&SendData,strlen(SendData)+1, 0);
就解決了,不是寫代碼的話,就沒法討論的
好吧,主要我不懂代碼,謝謝了!
我就是單純的想知道用這個軟體發什么內容過去能達到我的目的,讓接收端能收到0D
因為尾部要有0D我才能控制實際受控的設備
uj5u.com熱心網友回復:
我在討論代碼,你在討論軟體,不是一個頻道,發送一個回車
char * SendData="https://bbs.csdn.net/topics/PRESET -a 1 /n";
send(SocketID,(char*)&SendData,strlen(SendData)+1, 0);
就解決了,不是寫代碼的話,就沒法討論的
好吧,主要我不懂代碼,謝謝了!
我就是單純的想知道用這個軟體發什么內容過去能達到我的目的,讓接收端能收到0D
因為尾部要有0D我才能控制實際受控的設備
本身這就不是個事,你硬要用別人寫好的只發送可見字符的軟體發不可見字符。有原代碼的話,稍改下,沒有的話就另找個能發的
uj5u.com熱心網友回復:
我在討論代碼,你在討論軟體,不是一個頻道,發送一個回車
char * SendData="https://bbs.csdn.net/topics/PRESET -a 1 /n";
send(SocketID,(char*)&SendData,strlen(SendData)+1, 0);
就解決了,不是寫代碼的話,就沒法討論的
好吧,主要我不懂代碼,謝謝了!
我就是單純的想知道用這個軟體發什么內容過去能達到我的目的,讓接收端能收到0D
因為尾部要有0D我才能控制實際受控的設備
本身這就不是個事,你硬要用別人寫好的只發送可見字符的軟體發不可見字符。有原代碼的話,稍改下,沒有的話就另找個能發的
好,非常感謝,那是我的思路不對哈哈
有這方面的軟體推薦嗎,能發送和監聽tcp滿足我這種發不可見字符的
uj5u.com熱心網友回復:
我在討論代碼,你在討論軟體,不是一個頻道,發送一個回車
char * SendData="https://bbs.csdn.net/topics/PRESET -a 1 /n";
send(SocketID,(char*)&SendData,strlen(SendData)+1, 0);
就解決了,不是寫代碼的話,就沒法討論的
好吧,主要我不懂代碼,謝謝了!
我就是單純的想知道用這個軟體發什么內容過去能達到我的目的,讓接收端能收到0D
因為尾部要有0D我才能控制實際受控的設備
本身這就不是個事,你硬要用別人寫好的只發送可見字符的軟體發不可見字符。有原代碼的話,稍改下,沒有的話就另找個能發的
補充一下,主要是我的受控端是進口的硬體我沒法修改,他不收到0D不執行命令,
這個0D應該是告訴他“我發完了,你執行吧”
uj5u.com熱心網友回復:
我在討論代碼,你在討論軟體,不是一個頻道,發送一個回車
char * SendData="https://bbs.csdn.net/topics/PRESET -a 1 /n";
send(SocketID,(char*)&SendData,strlen(SendData)+1, 0);
就解決了,不是寫代碼的話,就沒法討論的
好吧,主要我不懂代碼,謝謝了!
我就是單純的想知道用這個軟體發什么內容過去能達到我的目的,讓接收端能收到0D
因為尾部要有0D我才能控制實際受控的設備
本身這就不是個事,你硬要用別人寫好的只發送可見字符的軟體發不可見字符。有原代碼的話,稍改下,沒有的話就另找個能發的
補充一下,主要是我的受控端是進口的硬體我沒法修改,他不收到0D不執行命令,
這個0D應該是告訴他“我發完了,你執行吧”
這個事是個很簡單的事,用代碼弄的話
uj5u.com熱心網友回復:
不懂代碼?討論了半天代碼
uj5u.com熱心網友回復:
'\n ','\x0A','\x0a',10'\r','\x0D','\x0d',13
電腦記憶體或檔案內容或傳輸內容只是一個一維二進制位元組陣列及其對應的二進制地址;
人腦才將電腦記憶體或檔案內容或傳輸內容中的這個一維二進制位元組陣列及其對應的二進制地址的某些部分看成是整數、有符號數/無符號數、浮點數、復數、英文字母、阿拉伯數字、中文/韓文/法文……字符/字串、匯編指令、函式、函式引數、堆、堆疊、陣列、指標、陣列指標、指標陣列、陣列的陣列、指標的指標、二維陣列、字符點陣、字符筆畫的坐標、黑白二值圖片、灰度圖片、彩色圖片、錄音、視頻、指紋資訊、身份證資訊……
void HexDump(char *buf,int len,int addr) {
int i,j,k;
char binstr[80];
for (i=0;i<len;i++) {
if (0==(i%16)) {
sprintf(binstr,"%08x -",i+addr);
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
} else if (15==(i%16)) {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
sprintf(binstr,"%s ",binstr);
for (j=i-15;j<=i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
} else {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
}
}
if (0!=(i%16)) {
k=16-(i%16);
for (j=0;j<k;j++) {
sprintf(binstr,"%s ",binstr);
}
sprintf(binstr,"%s ",binstr);
k=16-k;
for (j=i-k;j<i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
}
}
uj5u.com熱心網友回復:
請教TCP Client發送完一段字串后如何發送一個回車
我現在的發送端發送了字串 PRESET -a 1 (1后面有空格)
接收端收到:50 52 45 53 45 54 20 2D 61 20 31 20
這段字串后還需要一個 0D 我的指令才能控制接收端程式,那么這個 0D 在發送端該怎么寫,才能讓接收端收到 0D
也就是接收端需要收到:50 52 45 53 45 54 20 2D 61 20 31 20 0D 才能受控
感謝大神指教,新手不懂TCP
找個TCP除錯工具,能夠發送十六進制就可以了。NetAssist.exe
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/42176.html
標籤:網絡編程
