* Copyright (c) 1986 The Regents of the University of California.
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
"@(#) Copyright (c) 1986 The Regents of the University of California.\n\
static char sccsid
[] = "@(#)streamwrite.c 6.3 (Berkeley) %G%";
#define DATA "Half a league, half a league . . ."
* This program creates a socket and initiates a connection with the socket
* given in the command line. One message is sent over the connection and
* then the socket is closed, ending the connection. The form of the command
* line is streamwrite hostname portnumber
struct sockaddr_in server
;
struct hostent
*hp
, *gethostbyname();
sock
= socket(AF_INET
, SOCK_STREAM
, 0);
perror("opening stream socket");
/* Connect socket using name specified by command line. */
server
.sin_family
= AF_INET
;
hp
= gethostbyname(argv
[1]);
fprintf(stderr
, "%s: unknown host\n", argv
[1]);
bcopy(hp
->h_addr
, &server
.sin_addr
, hp
->h_length
);
server
.sin_port
= htons(atoi(argv
[2]));
if (connect(sock
, &server
, sizeof(server
)) < 0) {
perror("connecting stream socket");
if (write(sock
, DATA
, sizeof(DATA
)) < 0)
perror("writing on stream socket");