另外,服务器经常需要脚本,你需要知道shell脚本的知识。
然后,就是网络通信,服务器和客户端需要进行通信,你需要知道tcp/ip协议,网络编程,http和https协议,还有单播,组播,广播。
还有,服务器一般还需要数据库做支撑,所以数据库还需要了解。
当然,最基础的编程语言肯定是需要熟练掌握的,最好能懂算法,这样搭建服务器才高效。
最后,还有一些特殊的技术,比如多客户端同时连接服务器问题,epoll,select技术,进程间通信技术,多线程技术,文件操作等。
当然,以上所有技术了解最好,有些是必须熟练使用的。但是有些不用熟练使用,因为服务器,也不会让你全干,分到每个人手上的活只是一部分。
简单的写了一下,没有加注释,应该很好理解,满意的话请采纳#include <stdio.h>
#include <sys/socket.h>
#include <pthread.h>
void *thread(void *st)
int main(int argc, char *argv[])
{
pthread_t tid
int ret, fd
struct sockaddr_in info
fd = socket(AF_INET, SOCK_STREAM, 0)
if(fd <0)
goto socket_error
{
int var = 1
setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &var, sizeof(var))
}
info.sin_family = AF_INET
info.sin_port = htons(80)
info.sin_addr.s_addr = 0
ret = bind(fd, (void *)&info, sizeof(info))
if(ret)
goto bind_error
ret = listen(fd, 10)
if(ret)
goto listen_error
while(1)
{
clientfd = accept(fd, NULL, NULL)
pthread_create(&tid, NULL, thread, (void *)clientfd)
}
return 0
socket_error:
printf("socket error!\n")
return -1
bind_error:
printf("bind error!\n")
return -2
lister_error:
printf("lister error!\n")
return -2
}
void *thread(void *st)
{
int ret, rd
char buf[BUFSIZE]
int clientfd = (int)st
rd = read(clientfd, buf, sizeof(buf))
if(rd <0)
{
printf("read error!\n")
return
}
write(clientfd, "shou dao!", 9)
close(clientfd)
}
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)