[問題] winsock 連線 ptt
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
winsock
問題(Question):
1.想問控制碼要輸入甚麼 EX:上下左右
2.如何顯示不要亂碼
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/Ei42rD0L
補充說明(Supplement):
我用winsock連線到ptt
開了兩條thread
一條傳資料
一條收資料
目前我可以打自己帳號密碼登入
我自己測的結果
英文可以直接傳送
Enter則傳送"\x0d\x0a"
\x0A is the escaped hexadecimal Line Feed. The equivalent of \n.
\x0D is the escaped hexadecimal Carriage Return. The equivalent of \r.
目前到這邊就卡住了
所以想請問
1.想問控制碼要輸入甚麼 EX:上下左右
2.如何顯示不要亂碼
我有嘗試使用putty和wireshark看封包內容
但是太難看懂了
http://imgur.com/4lZSo5G

謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.160.116
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1464245090.A.A4C.html
推
05/26 15:53, , 1F
05/26 15:53, 1F
→
05/26 15:54, , 2F
05/26 15:54, 2F
推
05/26 23:42, , 3F
05/26 23:42, 3F
→
05/27 00:09, , 4F
05/27 00:09, 4F
→
05/27 00:17, , 5F
05/27 00:17, 5F
→
05/27 00:17, , 6F
05/27 00:17, 6F
→
05/27 00:19, , 7F
05/27 00:19, 7F
→
05/27 00:20, , 8F
05/27 00:20, 8F
→
05/27 00:21, , 9F
05/27 00:21, 9F
→
05/27 10:51, , 10F
05/27 10:51, 10F
我剛剛發現如果移除色彩控制馬就會比較好
template<typename T>
void removeSubstrs3(basic_string<T>& s,
const basic_string<T>& p,
const basic_string<T>& p2)
{
basic_string<T>::size_type n = p.length();
for (basic_string<T>::size_type i = s.find(p);
i != basic_string<T>::npos;
i = s.find(p))
{
basic_string<T>::size_type i2 = s.find(p2);
s.erase(i, i2-i+1);
}
}
template<typename T>
void removeSubstrs2(basic_string<T>& s)
{
int n=3;
for(int i=0;i<n;i++)
{
//如果含有色彩控制碼
removeSubstrs3(s,string("\x1b["),string("m"));
}
}
※ 編輯: bjk (118.168.236.12), 05/27/2016 15:02:20
→
05/27 15:26, , 11F
05/27 15:26, 11F
→
05/27 15:27, , 12F
05/27 15:27, 12F
→
05/27 15:34, , 13F
05/27 15:34, 13F
→
05/27 15:34, , 14F
05/27 15:34, 14F
我在pcman裡面的程式碼找到上下左右
/*
const char* CKeyMap::default_left ="\x1bOD";
const char* CKeyMap::default_right ="\x1bOC";
const char* CKeyMap::default_up ="\x1bOA";
const char* CKeyMap::default_down ="\x1bOB";
*/
※ 編輯: bjk (118.168.236.12), 05/27/2016 16:09:30
→
05/27 16:10, , 15F
05/27 16:10, 15F
→
05/27 16:10, , 16F
05/27 16:10, 16F
→
05/27 16:11, , 17F
05/27 16:11, 17F
→
05/27 17:13, , 18F
05/27 17:13, 18F
→
05/27 21:02, , 19F
05/27 21:02, 19F
→
05/27 21:58, , 20F
05/27 21:58, 20F
→
05/28 09:28, , 21F
05/28 09:28, 21F
→
05/29 17:07, , 22F
05/29 17:07, 22F
→
05/29 23:24, , 23F
05/29 23:24, 23F
→
05/30 00:07, , 24F
05/30 00:07, 24F
→
05/30 00:54, , 25F
05/30 00:54, 25F
char recvbuf[DEFAULT_BUFLEN];
iResult = recv(*pConnectSocket, recvbuf, recvbuflen, 0);
我是直接這樣收進來就是中文字
沒有處理編碼
※ 編輯: bjk (118.168.236.12), 05/30/2016 00:55:35
→
05/30 00:55, , 26F
05/30 00:55, 26F
推
10/12 16:51, , 27F
10/12 16:51, 27F