   What am i doing wrong?
  Well I am new on the winsock scene and I am trying to get my client to connect to the server... Here is the program: MAIN.CPP#include "library.h"int main(){// init winsock...    initwinsock();// init socketscout << "Loading sockets... ";SOCKET s = socket (AF_INET, SOCK_STREAM, 0); // Create socketsockaddr_in addr; // the address structure for a TCP socketaddr.sin_family = AF_INET; // Address family Internetaddr.sin_port = htons (7000);   // Assign port 5001 to this socketaddr.sin_addr.s_addr = htonl (INADDR_ANY);   // No destinationif (bind(s, (LPSOCKADDR)&addr, sizeof(addr)) == SOCKET_ERROR){ // errorcout << "\nerror initializing sockets.\n";system ("pause");WSACleanup ();  // unload WinSockreturn 1;    // quit}cout << "success" << endl;//Starting to Listen...cout << "Initializing listen server... ";// WSAStartup () has been called// SOCKET s is valid// s has been bound to a port using sockaddr_in sockif (listen(s,5)==SOCKET_ERROR){ // error!  unable to listencout << "Unable to listen..." << endl;WSACleanup ();return 1;}cout << "Success" << endl;//:D Everything works fine now.cout << "Server has started up successfuly." << endl; system ("pause");WSACleanup();}library.h#ifndef LIBRARY_H#define LIBRARY_H#include <iostream>#include <fstream>#include <winsock2.h>using namespace std;int initwinsock();helper files.cpp#include "library.h"int initwinsock(){cout << "Setting up winsock... ";    WSADATA wsaData; if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) {   cout << "\nWSAStartup failed.\n";system ("pause");   return 1;}cout << "Success" << endl;}and here is the client: (if it helps it is another project)#include <iostream>#include <fstream>#include <winsock2.h>using namespace std;int main(){// Initialising winsockcout << "Setting up winsock... ";WSADATA wsaData; if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) {cout << "\nWSAStartup failed.\n";system ("pause");return 1;}// Trying to connect to server...cout << "Connecting to server... ";    SOCKET s = socket (AF_INET, SOCK_STREAM, 0); // Create socketsockaddr_in target;target.sin_family = AF_INET; // address family Internettarget.sin_port = htons (7000);   // set server’s port numbertarget.sin_addr.s_addr = inet_addr ("127.0.0.1");  // set server’s IPif (connect(s, target, sizeof(target)) == SOCKET_ERROR){ // an error connecting has occurred!  WSACleanup ();  return 1;}cout << "omg :D it works" << endl;system ("pause");return 0;}this is the error i get:------ Build started: Project: test_client, Configuration: Debug Win32 ------Compiling...Test Client.cppc:\documents and settings\hrd\desktop\pie\project_piston\test_client\test client.cpp(24) : error C2664: 'connect' : cannot convert parameter 2 from 'sockaddr_in' to 'const sockaddr *'   No user-defined-conversion operator available that can perform this conversion, or the operator cannot be calledBuild log was saved at "file://c:\Documents and Settings\HRD\Desktop\pie\PROJECT_PISTON\test_client\Debug\BuildLog.htm"test_client - 1 error(s), 0 warning(s)========== Build: 0 succeeded, 1 failed, 1 up-to-date, 0 skipped ==========:) I am new to this all and am not sure what I am doing wrong, The tut says it should be right.Also I am using visual C++ express edition 2008 on windows XP   
  Would I be wrong in assuming that you are new to C++/programming all-together?  It seems that the error you have is very well described by the compiler.This line is throwing the error:if (connect(s, target, sizeof(target)) == SOCKET_ERROR)It says parameter two (which in this case is 'target') is of type 'sockaddr_in', when it should be a 'const sockaddr *'.  Now, I'm no C++ guru, but I'm sure that that means you need a constant pointer to a different type of object that the one you've given it.  You are giving the connect function the wrong information.I know very little about C++, yet I think I've found the error in your code.  I would suggest learning how to properly debug and actually know your language before you start a topic as heinously complex as sockets.Honestly, start small!(I apologise if this is misdirected or if it seems overly negative).   ;  Thanks NickHigh i agree with your post and I am new to C++ But We all got to start somewhere. But yeh I sort of figured most of that out but I am not sure how to fix it as the tut says it should be working... Anyway thanks :) (also if anyone can give a good tutorial for newbs on winsock it would be nice :) )   ;  That's not the point.  Sockets are an intense topic, and not something for beginners.  Yes, everyone has to start somewhere, so start small.  If you can't fix that error, then you probably shouldn't be doing sockets anyway.  Copying tutorials verbatim teaches you nothing.Someone help me out here...   ;  Sockets generally aren't *that* complicated, but you do need to know what your doing and how to use them; theres not really that much to the winsock library to get things going. (but I do support NickHighIQ comments somewhat)I think the problems come when you start considering how your program may handle many clients at once, and then you enter multi-threaded territory.generally speaking, first you use the accept function to create a socket for your client requests;SOCKET client = accept(listening_socket,NULL,NULL);then you spawn a new thread to handle that client. which is simpler said then done ;-) If you are just experimenting you could probably ignore this bit.to recv data you do;static int length = 4095;char buffer[length]; // any old lengthint result;result = recv(client,buffer,length,0);and sending is simular;send(client,buffer,length,0);You can use windows Hyperterminal to test your server, by connecting into it using the local address 127.0.0.1 and the port number.good luck.   ;Quote:Original post by moosedudeI think the problems come when you start considering how your program may handle many clients at once, and then you enter multi-threaded territory.That's what I was talking about, you've articulated it a bit clearer though.  Sockets aren't all that complex in themselves, but using them to create something like a server/client interface for a LAN game is one of the much harder topics out there.  And debugging threads will drive you completely bat-shit, trust me - if you can't debug this, good luck.   