12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /* Byte Stream Socket Example
- Copyright (C) 1991-2019 Free Software Foundation, Inc.
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
- #include <stdio.h>
- #include <errno.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #define PORT 5555
- #define MESSAGE "Yow!!! Are we having fun yet?!?"
- #define SERVERHOST "www.gnu.org"
- void
- write_to_server (int filedes)
- {
- int nbytes;
- nbytes = write (filedes, MESSAGE, strlen (MESSAGE) + 1);
- if (nbytes < 0)
- {
- perror ("write");
- exit (EXIT_FAILURE);
- }
- }
- int
- main (void)
- {
- extern void init_sockaddr (struct sockaddr_in *name,
- const char *hostname,
- uint16_t port);
- int sock;
- struct sockaddr_in servername;
- /* Create the socket. */
- sock = socket (PF_INET, SOCK_STREAM, 0);
- if (sock < 0)
- {
- perror ("socket (client)");
- exit (EXIT_FAILURE);
- }
- /* Connect to the server. */
- init_sockaddr (&servername, SERVERHOST, PORT);
- if (0 > connect (sock,
- (struct sockaddr *) &servername,
- sizeof (servername)))
- {
- perror ("connect (client)");
- exit (EXIT_FAILURE);
- }
- /* Send data to the server. */
- write_to_server (sock);
- close (sock);
- exit (EXIT_SUCCESS);
- }
|