Skip to content

Instantly share code, notes, and snippets.

@Moddus
Last active August 29, 2015 13:55
Show Gist options
  • Save Moddus/8709614 to your computer and use it in GitHub Desktop.
Save Moddus/8709614 to your computer and use it in GitHub Desktop.
fd = socket(AF_INET, SOCK_DGRAM, 0);
server_addr.sin_family = AF_INET;
#ifdef HAVE_SIN_LEN
server_addr.sin_len = sizeof(struct sockaddr_in);
#endif
server_addr.sin_addr.s_addr = "127.0.0.1";
server_addr.sin_port = htonl(7);
memset((void *) buf, ’A’, sizeof(buf));
addr_len = 0;
sendto(fd, (const void *) buf, sizeof(buf), 0, (const struct sockaddr *) server_addr, (socklen_t) sizeof(server_addr));
len = recvfrom(fd, (void *) buf, sizeof(buf), 0, (struct sockaddr *) &client_addr, (socklen_t *)&addr_len));
printf("Received %d bytes from %s:%d.\n", ntohl(len), inet_ntoa(client_addr.sin_addr), server_addr.sin_port);
close(fd);
/*
* 8. IP-Adresse wird als String zugewiesen und das geht nicht ( inet_addr() nutzen ).
* 9. htonl ist hier falsch, es muss htons verwendet werden.
* 12. addr_len wird in Zeile 14 als value result parameter genutzt und somit ist die Zweisung = 0 falsch.
* 15. len wird mit ntohl(len) in host order umgewandelt, das ist nicht nötig, da der Wert schon in host order ist.
* 15. server_addr.sin_port muss hingegen in host order (ntohs()) umgewandelt werden.
*/
/*
* Anmerkung alle Funktionsaufrufe prüfen, ob der return Wert < 0 ist.
* Sollte das der Fall sein beenden diese das Programm.
*
* server_ip gegeben als String
* server_port gegeben als int
*/
server.ip = inet_addr( server_ip )
server.port = htons( server_port )
fd = Socket( IPv4, SOCK_STREAM, TCP )
Connect( fd, server, len( server ) )
while ( ( len = read_stdin( data ) ) > 0 )
{
send( df, data, len( data ) )
}
Close( fd )
/*
* Anmerkung alle Funktionsaufrufe prüfen, ob der return Wert < 0 ist.
* Sollte das der Fall sein beenden diese das Programm.
*/
fd = Socket( IPv4, SOCK_STREAM, TCP )
Bind( fd, any, len( any ) )
Listen( fd, 1 )
for (;;)
{
cfd = accept( fd, client, len(client) )
glen = 0
while( ( len = Recv( cfd, buffer, len(buffer), 0) ) > 0 )
{
glen += len
}
print inet_ntop( client.ip ) + "port:" + ntohs( client.port ) + " read: " + glen
Close( cfd )
}
Close( fd )
/*
* Anmerkung alle Funktionsaufrufe prüfen, ob der return Wert < 0 ist.
* Sollte das der Fall sein beenden diese das Programm.
*
* server_ip gegeben als String
* server_port gegeben als int
*/
server.ip = inet_addr( server_ip )
server.port = htons( server_port )
fd = socket( IPv4, SOCK_DGRAM, UDP )
while ( ( len = read_stdin( data ) ) > 0 )
{
sendto( df, data, len( data ), server, len( server ) )
}
Close( fd )
/*
* Anmerkung alle Funktionsaufrufe prüfen, ob der return Wert < 0 ist.
* Sollte das der Fall sein beenden diese das Programm.
*/
fd = Socket( IPv4, SOCK_DGRAM, UDP )
Bind( fd, any, len( any ) )
len = sizeof(struct sockaddr_in);
for (;;)
{
// client ist hier als value result argument zu verstehen
glen = recvfrom( fd, data, len( data ), client, &len )
print inet_ntop( client.ip ) + "port:" + ntohs( client.port ) + " read: " + glen
}
Close( fd )
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment