Ubuntu users can download this using:
sudo apt-get install source-highlight
and the usage is like this:
source-highlight filename
If the filename is blah.extension, source-highlight creates blah.extension.html file in the same directory of filename.
The example C code below is about using sockets in POSIX type systems:
/* ** client.c -- a stream socket client demo */ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <string.h> #include <netdb.h> #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> #include <arpa/inet.h> #define PORT "3490" // the port client will be connecting to #define MAXDATASIZE 100 // max number of bytes we can get at once // get sockaddr, IPv4 or IPv6: void *get_in_addr(struct sockaddr *sa) { if (sa->sa_family == AF_INET) { return &(((struct sockaddr_in*)sa)->sin_addr); } return &(((struct sockaddr_in6*)sa)->sin6_addr); } int main(int argc, char *argv[]) { int sockfd, numbytes; char buf[MAXDATASIZE]; struct addrinfo hints, *servinfo, *p; int rv; char s[INET6_ADDRSTRLEN]; if (argc != 2) { fprintf(stderr,"usage: client hostname\n"); exit(1); } memset(&hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; if ((rv = getaddrinfo(argv[1], PORT, &hints, &servinfo)) != 0) { fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rv)); return 1; } // loop through all the results and connect to the first we can for(p = servinfo; p != NULL; p = p->ai_next) { if ((sockfd = socket(p->ai_family, p->ai_socktype, p->ai_protocol)) == -1) { perror("client: socket"); continue; } if (connect(sockfd, p->ai_addr, p->ai_addrlen) == -1) { close(sockfd); perror("client: connect"); continue; } break; } if (p == NULL) { fprintf(stderr, "client: failed to connect\n"); return 2; } inet_ntop(p->ai_family, get_in_addr((struct sockaddr *)p->ai_addr), s, sizeof s); printf("client: connecting to %s\n", s); freeaddrinfo(servinfo); // all done with this structure if ((numbytes = recv(sockfd, buf, MAXDATASIZE-1, 0)) == -1) { perror("recv"); exit(1); } buf[numbytes] = '\0'; printf("client: received '%s'\n",buf); close(sockfd); return 0; }
And this is a Java example about using Sockets in all platforms:
/** * SocketClient.java * Copyright (c) 2002 by Dr. Herong Yang */ import java.io.*; import java.net.*; public class SocketClient { public static void main(String[] args) { BufferedReader in = new BufferedReader(new InputStreamReader( System.in)); PrintStream out = System.out; try { Socket c = new Socket("localhost",8888); printSocketInfo(c); BufferedWriter w = new BufferedWriter(new OutputStreamWriter( c.getOutputStream())); BufferedReader r = new BufferedReader(new InputStreamReader( c.getInputStream())); String m = null; while ((m=r.readLine())!= null) { out.println(m); m = in.readLine(); w.write(m,0,m.length()); w.newLine(); w.flush(); } w.close(); r.close(); c.close(); } catch (IOException e) { System.err.println(e.toString()); } } private static void printSocketInfo(Socket s) { System.out.println("Remote address = " +s.getInetAddress().toString()); System.out.println("Remote port = " +s.getPort()); System.out.println("Local socket address = " +s.getLocalSocketAddress().toString()); System.out.println("Local address = " +s.getLocalAddress().toString()); System.out.println("Local port = " +s.getLocalPort()); } }
No comments:
Post a Comment
Thanks