Avatar billede code_freak Nybegynder
24. januar 2004 - 02:19 Der er 14 kommentarer og
1 løsning

let eksempel på en winsock multicon server

Jeg leder efter en der gider vise mig et eksempel / forklaring, på en multiconnection server, samt hvordan man laver en ny protokol (ligesom irc's), jeg har prøvet diverse sider, med tutorials, og læsestof, men der er ingen der rigtigt har kunne fortælle om hvad der skal bruges og hvornår, derfor vis en eller anden kunne splitte en stump kode til en server, den behøves ikke være avanceret, bare der bliver vist det jeg skal ligge mærke til og  det som i mener betyder noget, jeg vil give 100 point vis det bliver gjordt.

jeg ved det er en stor omgang, derfor behøver det ikke være den største kode i ligger op med :)
Avatar billede tgv Nybegynder
24. januar 2004 - 02:31 #1
Multithread server er måske ikke den bedste løsning, men den kan snildt klare en god del clienter samtidig.

http://www.codeproject.com/internet/winsockintro03.asp

Du kan evt. se de foregående tutorials: (hvilke dog ikke er MT):
http://www.codeproject.com/internet/winsockintro01.asp
http://www.codeproject.com/internet/winsockintro02.asp

Goodluck :)
Avatar billede code_freak Nybegynder
24. januar 2004 - 03:32 #2
helst ikke mfc... jeg kan ikke finde ud af at fiske det ud... :\
Avatar billede arne_v Ekspert
24. januar 2004 - 13:00 #3
Man kan sagtens skrive en multithreaded socket server i ren Win32 API.

Lidt googling fandt bl.a.:
  http://www.acm.org/crossroads/xrds6-4/charlotte.html
Avatar billede code_freak Nybegynder
24. januar 2004 - 13:11 #4
må desvære sige der er for meget data til hvad jeg kan overskue... kan i ikke noget i hovedet der kan fortælle hvad dr skal bruges af alt der "rod" :)
Avatar billede code_freak Nybegynder
24. januar 2004 - 13:13 #5
eller måske et link med noget winsock Reference, med forklaring, om hvordan det skal sættes op og bruges
Avatar billede code_freak Nybegynder
24. januar 2004 - 13:18 #6
en bog vil også være fint nok at anbefale
Avatar billede arne_v Ekspert
24. januar 2004 - 13:19 #7
Du finder ikke noget nemmere end den artikel.

winsock skal ikke sættes op. Når TCP/IP er konfigureret i Windows, så virker det.

reference kan findes på MSDN.
Avatar billede arne_v Ekspert
24. januar 2004 - 13:22 #9
Hvis du søger på Amazon finder du masser af hits på winsock.

Bl.a.:

Windows Sockets Network Programming / Bob Quinn & David Shute

som har fået rimeligt gode anmeldelser.
Avatar billede code_freak Nybegynder
24. januar 2004 - 13:25 #10
tak... jeg vil lige prøve at rode med det nu
Avatar billede code_freak Nybegynder
24. januar 2004 - 13:36 #11
nu så jeg lige en singlethreaded server på msdn, men kan ikke se nogen function til connection request.... men for at holde en forbindelse skal det væl side i et loop... kan du vise hvordan det skal se ud?

// winsocktest1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include "winsock2.h"

void main() {
  //----------------------
  // Initialize Winsock
  WSADATA wsaData;
  int iResult = WSAStartup(MAKEWORD(2,2), &wsaData);
  if (iResult != NO_ERROR)
    printf("Error at WSAStartup()\n");
 
  //----------------------
  // Create a SOCKET for listening for
  // incoming connection requests
  SOCKET ListenSocket;
  ListenSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  if (ListenSocket == INVALID_SOCKET) {
    printf("Error at socket(): %ld\n", WSAGetLastError());
    WSACleanup();
    return;
  }
  //----------------------
  // The sockaddr_in structure specifies the address family,
  // IP address, and port for the socket that is being bound.
  sockaddr_in service;
  service.sin_family = AF_INET;
  service.sin_addr.s_addr = inet_addr("127.0.0.1");
  service.sin_port = htons(27015);

  //----------------------
  // Bind the socket.
  if (bind( ListenSocket,
    (SOCKADDR*) &service,
    sizeof(service)) == SOCKET_ERROR) {
    printf("bind() failed.\n");
    closesocket(ListenSocket);
    return;
  }
  // lopped skal vel være her, men hvordan?
  WSACleanup();
  return;
}
Avatar billede arne_v Ekspert
24. januar 2004 - 13:41 #12
Du skal have et listen kald og et loop med accept kald (uanset om det er single eller
multi threaded).
Avatar billede code_freak Nybegynder
04. februar 2004 - 23:01 #13
point?
Avatar billede arne_v Ekspert
04. februar 2004 - 23:10 #14
Jo tak - hvis du mener mine bidrag har hjulpet
Avatar billede code_freak Nybegynder
04. februar 2004 - 23:12 #15
lavede lige lidt gennemgang, også kunne jeg se det :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester