socket编程之编写第一个网络程序,C_C++,自学去
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
37.
listen(s,5);
38.
39.
len = sizeof(SOCKADDR);
40.
41.
while(1)
42.
{
http://www.zixue7.com/thread380411.html
2/11
2015/1/22
【新提醒】socket编程之编写第一个网络程序,C/C++,自学去
在客户端,我们需要按照以下步骤:
1.初始化socket库。 2.设置远程主机的地址和端口信息,并连接。 3.等待服务端的响应 4.当服务端响应,进行处理。 5.退出程序,关闭socket,终止对socket库的使用。
下面引用一张来自网络的图片,直观的说明通信的过程。
下面是代码示例: 服务端:
01. #include <stdio.h>
点评
回复
编辑
支持
反对
发表于 201465 06:13:13 | 只看该作者
校园网土豆视频看不成。。。
使用道具 评分 举报
管理
板凳
7 主题
153 帖子
948 积分
中学生
积分
948
收听TA 发消息 IP 编辑 禁止 帖子 清理
ZXC
请用你知道的去帮助别人,就像别人当初帮助你一样!
点评
回复
编辑
支持
百度文库
反对
坛友互动(1) 快捷我导的航帖子(1)
请输入搜索内容 论坛 编程语言 C/C++ socket编程之编写第一个网络程序
帖子
热搜: c语言 java 编程教程 自学去 搜
返回列表 1 2 1 / 2 页 下一页
自 删除»主题 | ›升降 | 置顶 ›| 直播 | 高› 亮 | 精华 | 图章 | 图标 | 关闭 | 移动 | 分类 | 复制 | 索 合并 | 分割 | 修复 | 警告 | 屏蔽 | 标签 | 生成文章
36.
printf("服务端发来的数据:%s\n", recvBuf);
http://www.zixue7.com/thread380411.html
3/11
2015/1/22
【新提醒】socket编程之编写第一个网络程序,C/C++,自学去
37.
38.
sprintf(sendBuf, "服务端你好!!!");
02. #include <winsock2.h>
03.
04. int main(void)
05. {
06.
int len = 0;
07.
WSADATA
wd;
08.
int ret = 0;
09.
SOCKET s,c;
10.
char sendBuf[1000]="", recvBuf[1000]="";
43.
/*6.等待客户端连接,会阻塞在此处,直到有客户端连接到来。*/
44.
c = accept(s, (SOCKADDR*)&caddr, &len);
45.
46.
sprintf(sendBuf, "欢迎登录自学去,您的ip地址为:%s\n", inet_ntoa(caddr.sin_addr));
第一个概念就是 socket ,大家可以点开去百度百科看看,他还附带了一个小例子,最好详细的看看,并尽量试图理解他, 这对后面的学习很有帮助。
如何使用这一套编程函数呢?
只需要按照以下几个步骤,以下步骤十分重要:
程序分为服务端和客户端(服务端就相当于我们的网站服务器,客户端就相当于我们的浏览器)
在服务端,我们需要大致按照以下步骤:
47.
48.
/*7.发送数据到客户端*/
49.
send(c, sendBuf, strlen(sendBuf)+1, 0);
50.
51.
/*8.接受客户端的返回*/
52.
recv(c, recvBuf, 1000, 0);
53.
54.
/*9.打印出客户端发送来的数据*/
55.
printf("%s\n", recvBuf);
11.
ret = WSAStartup(MAKEWORD(2,2),&wd); /*1.初始化操作*/
12.
13.
if(ret != 0)
14.
{
15.
return 0;
16.
}
17.
18.
if(HIBYTE(wd.wVersion)!=2 || LOBYTE(wd.wVersion)!=2)
19.
那我们究竟如何编程实现数据的传输呢?难道用c语言控制电的正负极吗? 当然 我们不需要这样做,我们只需要使用操作系 统提供给我们的一套网络编程的api函数即可,什么api函数 其实也就是函数,我们只要学会使用这些函数,那么就可以用 来编写出各式各样的网络程序了,不需要我们去做重复造轮子的事情。
接下来就谈谈这一套网络编程的api函数吧。
• 起点起诉纵横 最贵网络文学侵权案判罚300万 • GTK+入门教程之编写第一个程序 • 网络之人 • c语言写的单片机版本的红绿灯程序 • 偶遇网络骗子,以下是与其的逗比对话
签到
回复
编辑
推送
http://www.zixue7.com/thread380411.html
使用道具
4/11
2015/1/22
30.
saddr.sin_family = AF_INET; /*协议类型*/
31.
saddr.sin_port = htons(8888);
32.
33.
/*4.绑定在本地端口*/
34.
bind(s, (SOCKADDR *)&saddr, sizeof(SOCKADDR));
35.
36.
/*5.监听端口*/
2015/1/22
设为首页 收藏本站
【新提醒】socket编程之编写第一个网络程序,C/C++,自学去
论坛
视频教程
c/c++
PHP
问答平台
admin 在线 | 每日签到 | 我的 | 设置 | 消息 |
编程文章 个人空间 搜索 QQ群
提醒(2) | 门户管理 | 管理中心 | 退出
积分: 9681
| 用户组: 管理员 消息 新听众(3)
发表于 201465 12:58:36 | 只看该作者
good pretty good!
使用道具 评分 举报
管理
地板
11 主题
96 帖子
502 积分
中学生
积分
502
收听TA 发消息 IP 编辑 禁止 帖子 清理
但有以下几个疑问 char sendBuf[1000]=" ",recvBuf[1000]=" "; //什么意思 ret变量用来储存什么,为什么叫ret,它的全称是? saddr.sin_* ; 中的正弦是什么意思 是server in的意思么? bind(s,(SOCKADDR *)&saddr,sizeof(SOCKADDR)); //这句话什么意思,这里的强制装换是是什么意思啊? recv();中的1000是什么 len的用处何在 不懂啊
管理员
积分
9681
去
IP 编辑 禁止 帖子 清理
在上节课 socket网络编程之了解网络通信原理 中我们已经对网络编程,有了一个简单的了解,这节课我们就来编程实现 两台电脑之间的通信。
两台电脑通信,那么 数据是如何在两台电脑之间传输的呢? 是的,就是通过网线来传输,通过电的正负来表示 二进制中的 0 1 ,大家都知道在电脑中,一切数据(图像,声音,文字)都是二进制方式存储的,所以这样便可以通过网线传输任何数 据。
02. #include <winsock2.h>
03.
04. int main(void)
05. {
06.
WSADATA
wd;
07.
int ret = 0;
08.
SOCKET c;
09.
char recvBuf[1000]="", sendBuf[1000]="";
10.
SOCKADDR_IN saddr;
39.
send(c, sendBuf, strlen(sendBuf)+1, 0);
40.
41.
closesocket(c);
42.
WSACleanup();
43.
44.
return 0;
45. }
复制代码
gcc下的编译命令:
01. gcc ‐o server.exe server.c ‐lwsock32 02. 03. gcc ‐o client.exe client.c ‐lwsock32
{
20.
printf("初始化失败");
21.
WSACleanup();
22.
return 1;
23.
}
24.
25.
/*2.创建客户端socket*/
26.
c = socket(AF_INET, SOCK_STREAM, 0);
27.
28.
/*3.定义要连接的服务端信息*/
29.
saddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
复制代码
如果是 vc或者vs编译器下: 可以在 代码中的 #include <winsock2.h> 下面加上一行 #pragma comment(lib, "ws2_32.lib") //此处无分号结尾,用于引 入winsock库
然后跟一般的c语言一样编译即可。
运行结果:
在上面代码中遇到的不懂的函数,都可以直接输入到百度搜索,都会有详细的用法讲解,如果还是不懂,可以论坛发帖提 问,或者到官方交流群提问。本节课将录制视频教程来讲解,如果文章未看明白,或者不够生动,可以到www.zixue7.com 看视频教程。
程序, 网络
本主题由 admin 于 201464 10:10 解除高亮
收藏
分享到: QQ好友和群
腾讯微博
QQ空间
评分
转播
分享
淘帖
支持
反对 1
相关帖子
• mfc实现高大上界面 • 起点起诉纵横 最贵网络文学侵权案判罚300万 • 每日一例之 实例008.一个简单的求和程序 • 发一个几年前录制的网络入侵基础视频教程 • 刚写的程序,小白求夸奖.
19.
{
20.
printf("初始化失败");
21.
WSACleanup();
22.
return 1;
23.
}
24.
25.
/*2.创建服务端socket*/
26.
s = socket(AF_INET, SOCK_STREAM, 0);
27.
28.
/*3.设置服务端信息*/
29.
saddr.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
56.
57.
/*10.如果不再跟这个客户端联系,就关闭它*/
58.
closesocket(c);
59.
}
60.
/*如果有退出循环的条件,这里还需要清除对socket库的使用*/
61.
/* WSACleanup();*/
62.
return 0;
63. }
复制代码
客户端:
01. #include <stdio.h>
11.
SOCKADDR_IN saddr, caddr;
12.
ret = WSAStartup(MAKEWORD(2,2),&wd); /*1.初始化操作*/
13.
14.
if(ret != 0)
15.
{
16.
return 0;
17.
}
18.
if(HIBYTE(wd.wVersion)!=2 || LOBYTE(wd.wVersion)!=2)
点评
admin
我想问问 你c语言学到什么地方了 详情 回复 发表于 201465 16:34 IP:14.23.248.4:3374 删除
30.
saddr.sin_family = AF_INET;
31.
saddr.sin_port = htons(8888);
32.
33.
/*4.连接服务端*/
34.
connect(c, (SOCKADDR*)&saddr, sizeof(SOCKADDR));
35.
recv(c, recvBuf, 1000, 0);
查看: 4284 | 回复: 21
[视频教程] socket编程之编写第一个网络程序 [复制链接]
admin
发表于 201463 00:18:55 | 只看该作者 | 只看大图
楼主 电梯直达
学习技巧:遇到不懂多查资料,不急不躁,多动手多思考,熟能生巧。
学
790 3975 9681 主题 帖子 积分
【新提醒】socket编程之编写第一个网络程序,C/C++,自学去
meizivskai
发表于 201463 02:25:21 | 只看该作者
沙发
大神就是大神啊。。。
5 主题
277 帖子
1834 积分
高中生
积分
1834
收听TA 发消息 IP 编辑 禁止 帖子 清理
封尘之魂
请用你知道的去帮助别人,就像别人当初帮助你一样!
http://www.zixue7.com/thread380411.html
1/11
2015/1/22
【新提醒】socket编程之编写第一个网络程序,C/C++,自学去 1.初始化socket库。 2.绑定本机地址和端口。(服务端特有) 3.监听端口,等待客户端连接。 4.当有客户端连接,进行处理,但后继续监听或者结束程序。 5.退出程序,关闭socket,终止对socket库的使用。