linux段错误

linux段错误,第1张

/*************************************

文件名: server.c

linux 下socket网络编程简例 - 服务端程序

服务器端口设为 0x8888 (端口和地址可根据实际情况更改,或者使用参数传入)

服务器地址设为 192.168.1.104

作者:kikilizhm#163.com (将#换为@)

*/

#include <stdlib.h>

#include <sys/types.h>

#include <stdio.h>

#include <sys/socket.h>

#include <linux/in.h>

#include <string.h>

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_add.sin_family=AF_INET

s_add.sin_addr.s_addr=htonl(INADDR_ANY)/* 这里地址使用全0,即所有 */

s_add.sin_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_add.sin_addr.s_addr),ntohs(c_add.sin_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

}

Linux系统下面出现:Segmentfault(段错误)提示信息,有时候是由于你自己在编写程序的过程中,有数组越界、或者是内存泄漏(例如:引用了空指针)等原因造成的。具体是哪一种情况,就需要自己仔细查看自己编写的源程序,到底哪里有程序漏洞。

Linux是一套免费使用和自由传播的类Unix *** 作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的 *** 作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。

Linux *** 作系统诞生于1991年10月5日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的 *** 作系统。

在图形计算中,一个桌面环境(Desktopenvironment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。但严格来说窗口管理器和桌面环境是有区别的。桌面环境就是桌面图形环境,它的主要目标是为Linux/Unix *** 作系统提供一个更加完备的界面以及大量各类整合工具和使用程序,其基本易用性吸引着大量的新用户。桌面环境名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7098857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-01
下一篇 2023-04-01

发表评论

登录后才能评论

评论列表(0条)

保存