Строка, полученная из сокета, не печатается. Печать ⇐ C++
-
Anonymous
Строка, полученная из сокета, не печатается. Печать
When i run the main function and attempt to get a definition from a dict server only the first line is returned.
main.cpp
#include #include #include "dictclient/dictclient.hpp" int main(int argc, char *argv[]){ if(!(argc < 2)){ DictClient client("localhost", "2628"); client.define("gcide", argv[1]); } return 0; } util.hpp
#ifndef SOCKECTUTIL_H_ #define SOCKECTUTIL_H_ #include #include #include #include int convrecv(int socket, char *buf, int len){ char *s = buf; int slen = len; int c = recv(socket, s, slen, 0); while(!(c > slen) && (c>0) && (s[c-1] != '\n')){ s += c; slen -=c; c = recv(socket, s, slen, 0); } if(c < 0){ return c; } else if(c == 0){ s[0] = 'a'; } else{ s[c-1] = '\0'; } return len-slen; } int convsend(int socket, const char *buf){ int result = send(socket, buf, strlen(buf), 0); if(result == -1) std::cerr ai_socktype, p->ai_protocol); if(m_Socket == -1){ std::cerr ai_addr, p->ai_addrlen) != 0){ throw; continue; } break; } if(p == NULL) throw; } catch(int e){ std::cerr
Источник: https://stackoverflow.com/questions/780 ... ting-print
When i run the main function and attempt to get a definition from a dict server only the first line is returned.
main.cpp
#include #include #include "dictclient/dictclient.hpp" int main(int argc, char *argv[]){ if(!(argc < 2)){ DictClient client("localhost", "2628"); client.define("gcide", argv[1]); } return 0; } util.hpp
#ifndef SOCKECTUTIL_H_ #define SOCKECTUTIL_H_ #include #include #include #include int convrecv(int socket, char *buf, int len){ char *s = buf; int slen = len; int c = recv(socket, s, slen, 0); while(!(c > slen) && (c>0) && (s[c-1] != '\n')){ s += c; slen -=c; c = recv(socket, s, slen, 0); } if(c < 0){ return c; } else if(c == 0){ s[0] = 'a'; } else{ s[c-1] = '\0'; } return len-slen; } int convsend(int socket, const char *buf){ int result = send(socket, buf, strlen(buf), 0); if(result == -1) std::cerr ai_socktype, p->ai_protocol); if(m_Socket == -1){ std::cerr ai_addr, p->ai_addrlen) != 0){ throw; continue; } break; } if(p == NULL) throw; } catch(int e){ std::cerr
Источник: https://stackoverflow.com/questions/780 ... ting-print
Мобильная версия