
文件名: serverc
linux 下socket网络编程简例 - 服务端程序
服务器端口设为 0x8888 (端口和地址可根据实际情况更改,或者使用参数传入)
服务器地址设为 1921681104
作者:kikilizhm#163com (将#换为@)
/
#include <stdlibh>
#include <sys/typesh>
#include <stdioh>
#include <sys/socketh>
#include <linux/inh>
#include <stringh>
int main()
{
int sfp,nfp; / 定义两个描述符 /
struct sockaddr_in s_add,c_add;
int sin_size;
unsigned short portnum=0x8888; / 服务端使用端口 /
printf("Hello,welcome to my server !\r\n");
sfp = socket(AF_INET, SOCK_STREAM, 0);
if(-1 == sfp)
{
printf("socket fail ! \r\n");
return -1;
}
printf("socket ok !\r\n");
/ 填充服务器端口地址信息,以便下面使用此地址和端口监听 /
bzero(&s_add,sizeof(struct sockaddr_in));
s_addsin_family=AF_INET;
s_addsin_addrs_addr=htonl(INADDR_ANY); / 这里地址使用全0,即所有 /
s_addsin_port=htons(portnum);
/ 使用bind进行绑定端口 /
if(-1 == bind(sfp,(struct sockaddr )(&s_add), sizeof(struct sockaddr)))
{
printf("bind fail !\r\n");
return -1;
}
printf("bind ok !\r\n");
/ 开始监听相应的端口 /
if(-1 == listen(sfp,5))
{
printf("listen fail !\r\n");
return -1;
}
printf("listen ok\r\n");
char gc;
while(1)
{
sin_size = sizeof(struct sockaddr_in);
/ accept服务端使用函数,调用时即进入阻塞状态,等待用户进行连接,在没有客户端进行连接时,程序停止在此处,
不会看到后面的打印,当有客户端进行连接时,程序马上执行一次,然后再次循环到此处继续等待。
此处accept的第二个参数用于获取客户端的端口和地址信息。
/
nfp = accept(sfp, (struct sockaddr )(&c_add), &sin_size);
if(-1 == nfp)
{
printf("accept fail !\r\n");
return -1;
}
printf("accept ok!\r\nServer start get connect from %#x : %#x\r\n",ntohl(c_addsin_addrs_addr),ntohs(c_addsin_port));
/ 这里使用write向客户端发送信息,也可以尝试使用其他函数实现 /
if(-1 == write(nfp,"hello,welcome to my server \r\n",32))
{
printf("write fail!\r\n");
return -1;
}
while((gc = getchar()) != EOF) / 按ctrl + z 键结束,或者给定一个特殊字符,如'#',即 hile((gc = getchar()) != '#') /
{
write(nfp,gc,1);
}
printf("write ok!\r\n");
close(nfp);
}
close(sfp);
return 0;
}查看端口使用情况,使用netstat命令。
查看已经连接的服务端口(ESTABLISHED
netstat -a
查看所有的服务端口(LISTEN,ESTABLISHED)
netstat -ap
查看8080端口,则可以结合grep命令:netstat -ap | grep 8080
如查看8888端口,则在终端中输入:lsof -i:8888如果是阿里云或腾讯云的服务器,应该先在安全组放行端口:
腾讯云:>
1、打开浏览器,输入宝塔面板地址,打开宝塔面板,然后输入账号和密码,点击登录。
2、进入面板后,点击下图左侧-网站-添加站点。
3、然后点击上图右下角-提交 按钮,这个网站就创建成功了,会出现下图提示,可保留记录下来,如果忘记了可在面板左侧FTP和数据库进行查看,然后点击右上角×。
4、宝塔面板创建站点成功后,如下图效果,点击下图红框部分,会进入站点根目录。
5、宝塔面板创建站点后,在根目录会自动生成下面四个文件,其中indexhtml文件打开后如下图所示。
6、indexhtml这个没有用,可以删除,其他三个不要动就打开完成了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)