Bind a socket
Vasilis Vasaitis
vvas at hal.csd.auth.gr
Thu May 4 13:00:36 EEST 2000
On Thu, May 04, 2000 at 10:56:50AM +0300, Michalis Kabrianis wrote:
> Geia sas.
> Sygnwmmi alla aisthanomai ligo xazos, kai fobamai oti exw kollisei.
> Mipws mporei kapoios na mou pei ti den paei kala sto katwthi programma kai mou
> bgazei error:
>
> bind: Socket operation on non-socket
>
> -----cut here------
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netinet/in.h>
> #include <arpa/inet.h>
> #define PORT 9765
>
> int sock, bound;
> struct sockaddr_in insock;
>
> main() {
> bzero(&insock, sizeof(insock));
Καλύτερα να χρησιμοποιείς την memset(&insock, 0, sizeof insock), που θα
σου δουλέψει ακόμα και σε PalmOS (λέμε τώρα).
> insock.sin_port=htons(PORT);
> insock.sin_family=AF_INET;
> insock.sin_addr.s_addr=INADDR_ANY;
> if (sock=socket(AF_INET, SOCK_STREAM, 0) < 0 ) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> perror("socket");
> exit(1);
> }
> if (bound=bind(sock, (struct sockaddr *) &insock, sizeof(insock)) < 0 ) {
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> perror("bind");
> exit(2);
> }
> }
Βαριέμαι να το ελέγχω, αλλά δοκίμασε να κλείσεις τις παραστάσεις που
υποδεικνύω σε παρενθέσεις (την πρώτη βασικά). Μου φαίνεται ότι το sock που
περνάς στην bind έχει την τιμή 0, η οποία είναι ο fd της προκαθορισμένης
εισόδου, που προφανώς δεν είναι socket. Επίσης (άσχετο), την μεταβλητή bound
τι την θέλεις;
> Eyxaristw ek twn proterwn.
>
>
> Michalis Kabrianis
> kabrianis at hellug.gr
> http://homepages.pathfinder.gr/mkab
--
\ /_. _o|o _ \ /_. _ _.o_|_o _
\/(_|_>|||_> \/(_|_>(_|| |_|_>
__
_. _ / \|_ _.| _ _ _| _. _|_|_ _ ._
\/\/(_|_>| (|/| |(_||o(__>(_|o(_||_||_| |o(_||
\__ _|
--
linux-greek-users mailing list -- http://lists.hellug.gr
More information about the Linux-greek-users
mailing list