#include <string.h>
#include <sys/socket.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <fcntl.h>
#include <sys/select.h>
#define SIZE 1024
#define SERVER_PORT 80
int main(int argc, char *argv[])
{
int socket_fd, count
char buf[SIZE]
struct sockaddr_in s_addr
struct hostent *hent
fd_set fdset
struct timeval time_val
if (argc != 2)
{
printf("usage: %s hostname\n", argv[0])
return -1
}
socket_fd = socket(AF_INET, SOCK_STREAM, 0)
if (socket_fd == -1)
{
printf("socket failed!\n")
return -1
}
hent = gethostbyname(argv[1])
bzero(&s_addr, sizeof(struct sockaddr_in))
s_addr.sin_family = AF_INET
s_addr.sin_port = htons(SERVER_PORT)
s_addr.sin_addr.s_addr = inet_addr(inet_ntop(hent->h_addrtype, hent->h_addr_list[0], buf, sizeof(buf)))
connect(socket_fd, (struct sockaddr*)(&s_addr), sizeof(struct sockaddr))
count = snprintf(buf, SIZE, "GET / HTTP/1.1\r\nhost:%s\r\n\r\n", argv[1])
write(socket_fd, buf, count)
FD_ZERO(&fdset)
FD_SET(socket_fd, &fdset)
time_val.tv_sec = 9
time_val.tv_usec = 0
count = select(socket_fd + 1, &fdset, NULL, NULL, &time_val)
if (count == 0)
{
printf("timeout\n")
return -1
}
fcntl(socket_fd, F_SETFL, O_NONBLOCK)
while ((count = read(socket_fd, buf, SIZE - 1)) >0)
{
buf[count] = 0
printf("%s\n", buf)
}
close(socket_fd)
return 0
}
1.根据机器的用途,许多服务是不需要的。如果Linux只是一个桌面,那么就不需要sendmail、HTTPD和许多其他服务。
如果您的服务器只是一个Web服务器,您还可以关闭许多服务。为此,转到administration菜单并检查服务项。只需撤消您不想启动的任何服务选项。
2.使用轻量级窗口管理器,而不是GNOME或KDE。我插入内存占用窗口管理器的原因是,它们极大地减少了图形化(界面)启动时间。而不必等待额外的30到60秒来启动GNOME或KDE。
3.确保内网的正常使用。指定内联网LINUX访问地址,并确保LINUX服务器的SSH服务正常工作。
4.在被访问的LINUX服务器上安装nat123clientLINUX并使用它。登录网站,左用户中心,添加端口映射。选择完整的端口映射类型。
填写内部网LINUX固定地址端口,外部网络访问域名。您可以使用自己的域名或二级域名。
5.安装nat123客户机并在外部网络访问端使用访问器。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)