| | |
socket c++
Please support our C++ advertiser: Programming Forums - DaniWeb Sister Site
![]() |
•
•
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!!!
Views: 708 | Replies: 1
| Thread Tools | Search this Thread |
Tag cloud for C++
6 add api array arrays beginner binary bitmap c++ c/c++ calculator char class classes code compile compiler console conversion convert count data delete desktop directshow dll encryption error file forms fstream function functions game getline givemetehcodez google graph homeworkhelper iamthwee ifstream input int integer java lazy lib linkedlist linux loop looping loops map math matrix memory microsoft newbie news node number output parameter pointer problem program programming project proxy python random read recursion recursive reference return sort string strings struct studio system template templates test text tree unix url variable vector video visual visualstudio win32 windows winsock word wordfrequency wxwidgets






