Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Primer klijenta i servera u Visual C++ 6

[es] :: C/C++ programiranje :: Primer klijenta i servera u Visual C++ 6

[ Pregleda: 3270 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
66.228.70.*



+6 Profil

icon Re: Primer klijenta i servera u Visual C++ 622.02.2005. u 19:42 - pre 233 meseci
Mora da se linkuje biblioteka ws2_32.lib

[Edit] A vidim i da news server opet zeza sa vremenom slanja poruke. [/Edit]
 
Odgovor na temu

stameni
Ivan Stamenković

Član broj: 6739
Poruke: 538



+9 Profil

icon Primer klijenta i servera u Visual C++ 622.02.2005. u 20:40 - pre 233 meseci
Brčić i Kmetić su napisali odličan tutorijal - seminarski rad o

programiranju TCP/IP Unix API-jima. U dodatku postoji i primer klijenta i

servera za Windows. Međutim, ni jedan ni drugi program ne mogu uspešno da

se linkuju u Visual C++ 6. Pošto pretpostavljam da je reč o istom tipu

problema (javlja se ista greška LNK2001 prilikom linkovanja), evo ispod

samo programa za klijent (nešto je kraći), kao i outputa kompajlera, pa ako

neko zna rešenje problema, ne bilo mu teško da javi.


Code:


/* client.c -- a stream socket client demo */


#include <winsock2.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>


#define PORT 3490 // the port client will be connecting to

#define MAXDATASIZE 100 // max number of bytes we can get at once


int main(int argc, char *argv[])

{

int sockfd, numbytes;

char buf[MAXDATASIZE];

struct hostent *he;

struct sockaddr_in their_addr; // connector"s address information

WSADATA wsaData;


if (argc != 2) {

fprintf(stderr,"usage: client hostnamen");

exit(1);

}

if (WSAStartup(0x202, &wsaData) == SOCKET_ERROR) {

fprintf(stderr,"WSAStartup failed with error %dn",WSAGetLastError());

WSACleanup();

exit(1);

}

if ((he = gethostbyname(argv[1])) == NULL) { // get the host info

fprintf(stderr,"gethostbyname");

WSACleanup();

exit(1);

}

if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {

fprintf(stderr,"socket");

WSACleanup();

exit(1);

}

their_addr.sin_family = AF_INET; // host byte order

their_addr.sin_port = htons(PORT); // short, network byte order

their_addr.sin_addr = *((struct in_addr *)he->h_addr);

memset(&(their_addr.sin_zero), "", 8); // zero the rest of the struct

if (connect(sockfd, (struct sockaddr *)&their_addr, sizeof(struct

sockaddr)) == -1) {

fprintf(stderr,"connect");

WSACleanup();

exit(1);

}

if ((numbytes=recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) {

fprintf(stderr,"recv");

WSACleanup();

exit(1);

}

buf[numbytes] = "";

printf("Received: %s",buf);

closesocket(sockfd);

WSACleanup();

return 0;

}




Greške koje linker prijavljuje su:

[code]

client.obj : error LNK2001: unresolved external symbol __imp__closesocket@4

client.obj : error LNK2001: unresolved external symbol __imp__recv@16

client.obj : error LNK2001: unresolved external symbol __imp__connect@12

client.obj : error LNK2001: unresolved external symbol __imp__htons@4

client.obj : error LNK2001: unresolved external symbol __imp__socket@12

client.obj : error LNK2001: unresolved external symbol

__imp__gethostbyname@4

client.obj : error LNK2001: unresolved external symbol __imp__WSACleanup@0

client.obj : error LNK2001: unresolved external symbol

__imp__WSAGetLastError@0

client.obj : error LNK2001: unresolved external symbol __imp__WSAStartup@8

Debug/abcd.exe : fatal error LNK1120: 9 unresolved externals

Error executing link.exe.

[code]
 
Odgovor na temu

srdjandakic

Član broj: 11297
Poruke: 430
*.metrohive.net.



+14 Profil

icon Re: Re: Primer klijenta i servera u Visual C++ 623.02.2005. u 10:28 - pre 233 meseci
BTW, pogledaj http://www.hawksoft.com/hawknl/

Vrlo zgodan mali portabilan API koji je wrapper oko WinSock, ima primera za to što tražiš (klijent-server u VC++ 6)
 
Odgovor na temu

stameni
Ivan Stamenković

Član broj: 6739
Poruke: 538



+9 Profil

icon Re: Primer klijenta i servera u Visual C++ 623.02.2005. u 10:43 - pre 233 meseci
Citat:
Mora da se linkuje biblioteka ws2_32.lib



To je to. Hvala!
 
Odgovor na temu

ivbrcic
Ivan Brcic
Siemens
Zagreb

Član broj: 38567
Poruke: 35
*.siemens.at.



Profil

icon Re: Re: Primer klijenta i servera u Visual C++ 623.02.2005. u 14:55 - pre 233 meseci
Hvala na pohvalama za seminarski rad.

Seminarski rad ce dobiti i svoje poboljsanje, iako ne znam tocno kada, a to
poboljsanje ce biti u obliku, da ce se kroz taj seminar pokusati obraditi i design patterns u c++. To je dobar primjer da se uoce dobre strane objektnog programiranja, jer je iz onih kodova vidljivo da su vrlo neuredni i neprakticni.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Primer klijenta i servera u Visual C++ 6

[ Pregleda: 3270 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.