Skip to content

Instantly share code, notes, and snippets.

@uchan-nos
Created July 3, 2014 14:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save uchan-nos/5ddf77865d314b90a0a2 to your computer and use it in GitHub Desktop.
Save uchan-nos/5ddf77865d314b90a0a2 to your computer and use it in GitHub Desktop.
#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <unistd.h>
using namespace std;
int main(int argc, char** argv)
{
sockaddr_in server;
int sock;
char buf[32];
char *deststr;
int n;
if (argc != 2) {
cout << "Usage : " << argv[0] << " dest" << endl;
return 1;
}
deststr = argv[1];
sock = socket(AF_INET, SOCK_STREAM, 0);
memset(&server, 0, sizeof(server));
server.sin_family = AF_INET;
server.sin_port = htons(8080);
//server.sin_addr.s_addr = inet_addr(deststr);
server.sin_addr.s_addr = inet_addr("127.0.0.1");
//if (server.sin_addr.s_addr == 0xffffffff) {
// hostent *host;
// host = gethostbyname(deststr);
// if (host == NULL) {
// return 1;
// }
// server.sin_addr.s_addr = *(unsigned int *)host->h_addr_list[0];
//}
connect(sock, (sockaddr *)&server, sizeof(server));
memset(buf, 0, sizeof(buf));
cout << "reading from server" << endl;
n = read(sock, buf, sizeof(buf) - 1);
cout << n << ' ' << buf << endl;
close(sock);
return 0;
}
#include <iostream>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>
using namespace std;
int main()
{
int sock0;
sockaddr_in addr, client;
socklen_t len;
int sock;
sock0 = socket(AF_INET, SOCK_STREAM, 0);
cout << "echo sock0 = " << sock0 << endl;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_port = htons(8080);
addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_len = sizeof(addr);
bind(sock0, (sockaddr *)&addr, sizeof(addr));
listen(sock0, 5);
while (1) {
len = sizeof(client);
cout << "accepting client" << endl;
sock = accept(sock0, (sockaddr *)&client, &len);
cout << "writing to client" << endl;
write(sock, "Hello", 5);
close(sock);
}
close(sock0);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment