`

[转]vc中socket编程步骤

 
阅读更多

sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。

服务器端编程的步骤:

1:加载套接字库,创建套接字(WSAStartup()/socket());

2:绑定套接字到一个IP地址和一个端口上(bind());

3:将套接字设置为监听模式等待连接请求(listen());

4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());

5:用返回的套接字和客户端进行通信(send()/recv());

6:返回,等待另一连接请求;

7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

服务器端代码如下:

#include<stdio.h>
#include
<Winsock2.h>
voidmain()
{
WORDwVersionRequested;
WSADATAwsaData;
interr;

wVersionRequested
=MAKEWORD(1,1);

err
=WSAStartup(wVersionRequested,&wsaData);
if(err!=0){
return;
}


if(LOBYTE(wsaData.wVersion)!=1||
HIBYTE(wsaData.wVersion)
!=1){
WSACleanup();
return;
}

SOCKETsockSrv
=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_INaddrSrv;
addrSrv.sin_addr.S_un.S_addr
=htonl(INADDR_ANY);
addrSrv.sin_family
=AF_INET;
addrSrv.sin_port
=htons(6000);

bind(sockSrv,(SOCKADDR
*)&addrSrv,sizeof(SOCKADDR));

listen(sockSrv,
5);

SOCKADDR_INaddrClient;
intlen=sizeof(SOCKADDR);
while(1)
{
SOCKETsockConn
=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
charsendBuf[50];
sprintf(sendBuf,
"Welcome%stohere!",inet_ntoa(addrClient.sin_addr));
send(sockConn,sendBuf,strlen(sendBuf)
+1,0);
charrecvBuf[50];
recv(sockConn,recvBuf,
50,0);
printf(
"%s/n",recvBuf);
closesocket(sockConn);
}


}
客户端编程的步骤:

1:加载套接字库,创建套接字(WSAStartup()/socket());

2:向服务器发出连接请求(connect());

3:和服务器端进行通信(send()/recv());

4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。

客户端的代码如下:
#include<stdio.h>
#include
<Winsock2.h>
voidmain()
{
WORDwVersionRequested;
WSADATAwsaData;
interr;

wVersionRequested
=MAKEWORD(1,1);

err
=WSAStartup(wVersionRequested,&wsaData);
if(err!=0){
return;
}


if(LOBYTE(wsaData.wVersion)!=1||
HIBYTE(wsaData.wVersion)
!=1){
WSACleanup();
return;
}

SOCKETsockClient
=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_INaddrSrv;
addrSrv.sin_addr.S_un.S_addr
=inet_addr("127.0.0.1");
addrSrv.sin_family
=AF_INET;
addrSrv.sin_port
=htons(6000);
connect(sockClient,(SOCKADDR
*)&addrSrv,sizeof(SOCKADDR));
send(sockClient,
"hello",strlen("hello")+1,0);
charrecvBuf[50];
recv(sockClient,recvBuf,
50,0);
printf(
"%s/n",recvBuf);

closesocket(sockClient);
WSACleanup();
}

分享到:
评论

相关推荐

    vc中socket编程步骤

    vc中socket编程步骤,有了这个,就不怕经常忘记怎么写了.

    vc中socket编程步骤[总结].pdf

    vc中socket编程步骤[总结].pdf

    vc++socket 通讯demo

    vc中socket编程步骤 vc中socket编程步骤

    vc socket 编程

    基于TCP的socket编程是采用的流式套接字。 在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。 服务器端编程的步骤: 1:加载套接字库,创建套接字(WSAStartup()/socket()); 2:绑定套...

    VC聊天程序设计步骤

    【实验目的】 ⑴熟悉VisualC++的基本操作。...⑶对于Windows Socket编程建立初步概念。 【实验要求】 ⑴ 应用Visual C++中MFC CSocket类,实现网络数据传输。 ⑵ 仿照本实验步骤,制作实用的局域网一对一聊天程序。

    实验三Socket通信实验报告.doc

    基于C的面向连接的socket编程模型 1. 点对点通信功能 实现网络点对点通讯程序的关键步骤就是实现信息在网络中的发送和接收。数据接收 使用的是Socket,数据发送使用的是NetworkStream。 1.1利用Socket来接收信息 ...

    VC 通过代理向服务器发送请求.rar

    VC 6.0 通过代理向服务器发送请求的编程实例,附有完整源码,作者:冬雪。目前仅支持简单几个方法,AUTH_NO。通过SOCKS代理向pop.mail.yahoo.com这个服务器发送一个用户登录请求,并取得该POP3服务器的响应。该程序...

    基于Visual C++的Winsock API研究

    基于VC的网络编程,WinSock的实现过程,详细阐述Socket实现步骤和操作方法,并且附有一定的代码! 文中列出了各种可能出现的错误。 本文档为学习VC网络编程很好的参考资料,总结的非常详细!!!

    计算机网络实践报告.zip

    (1) TCP协议中服务器程序、客户端程序的设计与实现 (2)TCP通信测试 (3)UDP通信程序的设计与实现 (4)UDP通信测试 3.设计准备 (1)阅读关于TCP/IP协议和Socket的相关内容; (2)阅读WinSock编程指南; (3...

    基于TCP的网络聊天室

    CSocket的编程步骤:(注意我们一定要在创建MFC程序第二步的时候选上Windows Socket选项,其中ServerSocket是服务器端用到的,ClientSocket是客户端用的。) (1)构造CSocket对象,如下例: CSocket ServerSocket;...

    基于TCP的网络聊天室的设计

    CSocket的编程步骤:(注意我们一定要在创建MFC程序第二步的时候选上Windows Socket选项,其中ServerSocket是服务器端用到的,ClientSocket是客户端用的。) (1)构造CSocket对象,如下例: CSocket ServerSocket;...

    vc++ 应用源码包_6

    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...

    基于WinPcap的网络扫描以及端口扫描流量统计毕业设计

    3.1 socket(套接字)编程原理 17 3.2套接字函数的分析 18 3.3 SOCKET端口扫描的程序思想 20 3.4基于SOCKET程序扫描的实现 20 4. 总结 21 5.参考文献 22 6.附录 23 收到此文件后,请按如下步骤安装 1.安装支持...

    vc++ 开发实例源码包

    ListenSocket.h 侦听接口类文件 ChatSocket.h 聊天接口类文件 SettingDlg.h 设置对话框类文件 LocalInfoDlg.h 查看本地信息对话框类文件 freeeim_FreeEIM_企业即时通讯软件源代码2010年8月份最新版 如题。 FTP、...

    vc++ 应用源码包_1

    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...

    vc++ 应用源码包_2

    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...

    vc++ 应用源码包_3

    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...

    vc++ 应用源码包_5

    利用Delphi的代码在VC中显示JPG图片,不使用动态连接库。 Mail_Report.zip 一个邮件报告程序。 SrcFirstProg.zip 解释了最基本的MFC程序流程。 tabcontrol_demo.zip tabcontrol_src.zip 自定义的标签控件对话框...

    MFC教程入门知识全集.rar

    说明:本书稿为张孝祥、袁龙友两位老师在2000 年依据张孝祥的vc 讲课记录整理,由于时间关系,仅仅是写成了草稿,欢迎大家使用! 第1 章 掌握C 1.1 类的定义与应用 1.1.1 结构的定义 1.1.2 类的定义 1.1.2.1 ...

Global site tag (gtag.js) - Google Analytics