1 / 19
文档名称:

基于socket编程实例.doc

格式:doc   大小:327KB   页数:19页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

基于socket编程实例.doc

上传人:分享精品 2017/11/30 文件大小:327 KB

下载得到文件列表

基于socket编程实例.doc

文档介绍

文档介绍:Linux嵌入式系统期末作业
选题:基于socket编程实例


2014年06月17日
目录
一、代码解析: 3
、: 3
、: 4
二、程序完成的主要功能: 5
、套接字编程基本概念 5
、基本socket函数 10
1、socket函数 10
2、bind函数 10
3、connect函数 10
listen函数 10
accecpt函数 12
write函数 12
read函数 12
8、close函数 11
三、必要的操作步骤 13
、分别编写server和client程序 13
13
14
15
四、执行程序的结果(效果图) 16
代码解析:
、:
#include <>
#include <>
#include <>
#include <>
#include <sys/> //数据类型定义
#include </> //定义数据结构sockaddr_in
#include <sys/> //提供socket函数及数据结构
#include <sys/>
#define SERVPORT 3333 /*服务器监听端口号*/
#define BACKLOG 10 /* 最大同时连接请求数*/
int main()
{
int sockfd,client_fd,sin_size; /*sock_fd:监听socket;client_fd:数据传输socket*/
struct sockaddr_in my_addr; /* 本机地址信息*/
struct sockaddr_in remote_addr; /* 客户端地址信息*/
//创建一个套接字,流式
if ((sockfd = socket(, SOCK_STREAM, 0)) == .1)
{
perror("socket");
exit(1);
} /*调用socker()函数绑定客户端的端口和 IP ,一般是不需要在客户端绑定*/
//初始化服务端
=;
=htons(SERVPORT);
= INADDR_ANY; /* 这里地址使用全0,即所有*/
bzero(&(),8);
//将套接字地址与所创建的套接字号联系起来
if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == .1)
{
perror("bind");
exit(1);
} /* 服务器端开始建立socket描述符*/
//愿意接收连接
if (listen(sockfd, BACKLOG) == .1)
{
perror("listen");
exit(1);
} /* 服务器端填充 sockaddr结构*/
while(1)
{
sin_size = sizeof(struct sockaddr_in);
if ((client_fd = accept(sockfd, (struct sockaddr *)&remote_addr, &sin_size)) == .1) {
perror("accept");
continue;
}
printf("received a connection from %s\n", inet_ntoa());
if (!fork())/* 子进程代码段*/
{
if (send(client_fd, "Hello, you are connected!\n", 26, 0) == .1)
perror("send"); /*调用connect()函数连接到服务器server*/
close(client_fd);
exit(0);
}
close(client_fd);
}
return 0;
}
、:
#include <stdio