| | |
socket c++
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Jan 2008
Posts: 77
Reputation:
Solved Threads: 0
So basically I am creating a client/server kind of program. The client/user enters a question eg "Who are you? "
The server part receives this and checks it with a txt file and returns eg "I am a computer" or "Answer not found"
So when i compile and run my program, I type in the question but nothing else happens, the prompt just stays there and no output is seen.
My text file is something like this
What are you?:I am a computer.
The server part receives this and checks it with a txt file and returns eg "I am a computer" or "Answer not found"
So when i compile and run my program, I type in the question but nothing else happens, the prompt just stays there and no output is seen.
My text file is something like this
What are you?:I am a computer.
C++ Syntax (Toggle Plain Text)
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <iostream> #include <cstring> #include <string> #include <fstream> #include <vector> #include <cstdlib> #include <iostream> using namespace std; enum { RECV_PORT = 5000, MSGSIZE = 1024 }; const char fileName[30] = "file.txt"; char* s; char input[255]; char* result = NULL; string qns, ans; socklen_t addr_len = sizeof(sockaddr) ; int server( int socket_fd ) { sockaddr_in my_addr ; memset( &my_addr, 0, sizeof(my_addr) ) ; my_addr.sin_family = AF_INET ; my_addr.sin_port = htons( RECV_PORT ) ; my_addr.sin_addr.s_addr = INADDR_ANY ; if ( bind( socket_fd, (sockaddr*)&my_addr, addr_len ) != 0 ) return 2 ; ifstream infile(fileName); while( true ) { //infile.open(fileName); char recv_data[MSGSIZE+1] ; sockaddr_in client_addr ; int bytes_recd = recvfrom( socket_fd, recv_data, MSGSIZE, 0, (sockaddr*)&client_addr, &addr_len ) ; if( bytes_recd == -1 ) break ; else recv_data[bytes_recd] = '\0' ; { infile.getline(input,255, '\n'); vector<string> parts; string tmpstr(input); s = input; result = strtok(s, ":"); while (result != NULL) { if (result != "" && result != ":") { parts.push_back(result); } result = strtok(NULL, ":"); } qns = parts[0]; ans = parts[1]; } string tmpvar(recv_data); cout << "from " << inet_ntoa(client_addr.sin_addr) << ':' << ntohs(client_addr.sin_port) << " - " << recv_data << endl ; if (tmpvar == qns) cout << ans << endl; } return 0 ; } int client( int socket_fd ) { cout << "Enter Address to connect: " ; string address ; cin >> address >> ws ; sockaddr_in peer_addr ; memset( &peer_addr, 0, sizeof(peer_addr) ) ; peer_addr.sin_family = AF_INET ; peer_addr.sin_port = htons( RECV_PORT ) ; peer_addr.sin_addr.s_addr = *(in_addr_t*)(gethostbyname( address.c_str() )->h_addr) ; string send_str ; while( std::getline( std::cin, send_str ) ) { send_str.resize(MSGSIZE) ; sendto( socket_fd, send_str.c_str(), MSGSIZE, 0, (sockaddr*)&peer_addr, addr_len ) ; } return 0 ; } int main() { int socket_fd = socket( AF_INET, SOCK_DGRAM, 0 ) ; if( socket_fd == -1 ) return 1 ; return fork() == 0 ? server( socket_fd ) : client( socket_fd ) ; }
Last edited by number87; Feb 24th, 2009 at 6:03 am.
![]() |
Similar Threads
- hp socket 370 motherboards (Motherboards, CPUs and RAM)
- Socket (C++)
- Socket programming + porting Unix to Win32 (C)
- Linking errors of socket functions (C)
- AMD socket 754 and 939 processors (Motherboards, CPUs and RAM)
- IE TCP/IP Socket Issue? (Web Browsers)
Other Threads in the C++ Forum
- Previous Thread: Problem on Returning Reference to Template Object
- Next Thread: C++ do-while command & scoring!!!
| Thread Tools | Search this Thread |
Tag cloud for C++
api application array arrays assignment beginner binary bitmap c++ c/c++ calculator char char* class classes code coding compile compiler console conversion convert count data database delete developer display dll dynamiccharacterarray email encryption error file format forms fstream function functions game generator getline givemetehcodez graph iamthwee ifstream image input int java lib list loop looping loops map math matrix memory multidimensional multiple newbie news node number numbertoword output pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings struct template templates text tree url variable vector video visual visualstudio win32 windows winsock word wordfrequency wxwidgets






