Source Chat, Cliente/servidor

Started by branco, 24 de June , 2006, 10:21:23 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

branco

Source feito por um amigo e estou compartilhando com vcs, oque ele faz é colocar um servido em escuta ai o cliente se conecta e podem converça, otimo para estudos, t+

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
char buff[1024];
char nick[256];
char sss[1024];
char *pul="\n";
main()
{
      printf("\tPrograma teste -> CHAT em C");
      printf("\nCarregando e criando sockets...");
      WSADATA data;     
      WSAStartup(MAKEWORD(2,2),&data);
      printf("\nDll winsock com versao 2,2 carregada.");
      SOCKET sock;
      sock=socket(AF_INET,SOCK_STREAM,0);
      printf("\nSocket criado e inicializado.");
      struct sockaddr_in local, remote;
      local.sin_family=AF_INET;
      local.sin_port=htons(21);
      local.sin_addr.s_addr=INADDR_ANY;
      bind(sock,(struct sockaddr*)&local,sizeof(local));
      listen(sock,1);
      printf("\nSocket configurado e em escuta");
      SOCKET at;
      int Siiz=sizeof(struct sockaddr);
      at=accept(sock,(struct sockaddr*)&remote,&Siiz);
      if(at!=INVALID_SOCKET)
      {
                            printf("\nConexão realizada com sucesso.");
      }
      printf("\nConexao vinda de: %s porta: %d",inet_ntoa(remote.sin_addr),ntohs(remote.sin_port));
      printf("\n\nDigite seu nick: ");
      gets(nick);
      while(true)
      {
                 printf(pul);
                 printf("%s envia: ",nick);
                 gets(buff);
                 send(at,buff,sizeof(buff),0);
                 send(at,pul,sizeof(pul),0);
                 recv(at,sss,sizeof(sss),0);
                 printf("\n%s",sss);
      }
      closesocket(at);
      closesocket(sock);
      getch();
}
Olha o trem... Quem vai ficar, quem vai partir? Quem vai chorar, quem vai sorrir?

insanity