⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.cc

📁 AVR 单片机程序设计用到的模拟器
💻 CC
字号:
/* $Id: Server.cc,v 1.3 2000/10/01 17:00:42 pure Exp $ */#include "Server.h"#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include <netdb.h>#include <arpa/inet.h>#include <sys/time.h>UnixServer::UnixServer(char* hostname, int port){	struct hostent* host;	host = gethostbyname(hostname);	if (!host) 	    throw;		struct sockaddr_in sa;	sa.sin_family = AF_INET;	sa.sin_port = htons(port);	sa.sin_addr = *(struct in_addr *) host->h_addr;		sock = socket(PF_INET, SOCK_STREAM, 0);	if (sock < 0) 	    throw;		char tmp;	tmp=1;	setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char*)&tmp, sizeof(tmp));	tmp=1;	setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE, (char*)&tmp, sizeof(tmp));	if (bind(sock, (struct sockaddr *)&sa, sizeof(sa)) < 0)	    throw;		if (listen(sock, 1) < 0)	    throw;		filedes = -1;}void UnixServer::accept(){	struct sockaddr_in sa;	socklen_t size = sizeof(sa);		filedes = ::accept(sock, (struct sockaddr *) &sa, &size);	if (filedes < 0) throw;}UnixServer::~UnixServer(){	if (filedes >= 0) {		shutdown(filedes, SHUT_RDWR);		close(filedes);	}	close(sock);}Server::Server(char* hostname, int port) :UnixServer(hostname, port),istream(&buf),ostream(&buf){}Server::~Server(){}int Server::fd(){	return filedes;}void Server::accept(){	UnixServer::accept();	buf.attach(filedes);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -