Hocam orada address'in 0 olup olmadigini kontrol ettiriyorum. Aslinda address.length ya da address.sizeof iste bu boyutu ariyorum.
Aslinda C kodu soyleydi
if (bind(create_socket, (struct sockaddr *) &address, sizeof(address)) == 0){
printf("Binding Socket\n");
}
Benim tek hata aldigim nokta bu. Butun kodu cevirdim :)
Belirtilen hata aldigim satiri kullanmasam
import std.stdio;
import std.c.stdlib;
import std.c.windows.winsock;
import std.c.windows.windows;
import std.c.windows.stat;
import std.c.windows.com;
import std.socket;
import core.memory;
import core.sys.posix.netinet.in_;
import core.sys.posix.arpa.inet;
import core.sys.posix.unistd;
import core.sys.posix.sys.stat;
import core.sys.posix.sys.types;
/*
* import core.sys.posix.sys.socket;
* import core.sys.posix.netinet.tcp;
import core.sys.posix.net.if_;
*/
void main()
{
int create_socket, new_socket;
socklen_t addrlen;
int bufsize = 1024;
char * buffer = (cast(char*)malloc(bufsize));
if((create_socket == socket(AF_INET, SOCK_STREAM, 0)) > 0)
{
writeln("The socket was created\n");
}
sockaddr_in address;
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(8080);
/*if (bind(create_socket, cast(sockaddr *) &address, address == 0))
{
writeln("Binding Socket\n");
}*/
while (1) {
if (listen(create_socket, 10) < 0) {
perror("server: listen");
exit(1);
}
if ((new_socket = accept(create_socket, cast(sockaddr *) &address, &addrlen)) < 0) {
perror("server: accept");
exit(1);
}
if (new_socket > 0){
printf("The Client is connected...\n");
}
recv(new_socket, buffer, bufsize, 0);
writeln("%d\n", buffer);
write(new_socket, "hello world\n", 12);
close(new_socket);
}
close(create_socket);
//return 0;
}
server: listen: No error
hata aliyorum. burada return degerinin 0 donduruldugu nokta da hatali ama kullanmayinca da hata vermiyor
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]