`
nathan09
  • 浏览: 155447 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Win CE以太网套接字实验小结

 
阅读更多

1。基础知识:

1)套接字(Socket):可以看成在两个程序进行通讯连接中的一个端点,一个程序将一段信息写入Socket中,该Socket将这段信息发送给另一个Socket,使这段信息能传送到本地以外的程序中处理。

2)端口与端口号:端口是网络服务分配的一个信息缓冲区,用于保留Socket中的输入、输出信息,端口是一个16位无符号整数,以区别主机上的不同程序或同一程序内不同位置上的Socket接口,低256的端口号保留给标准应用程序。每个套接字都组合进了IP地址、端口、端口号,这样形成的整体就可以区别不同机器上的不同信息交互双方的位置。

3)流套接字(Stream Socket)与数据包套接字(Datagram Socket):流套接字提供可靠的TCP协议来保证信息正确到达目的地。数据包套接字提供UDP协议不保证信息正确到达目的地。

4)TCP/IP协议的核心:传输层协议(TCP、UDP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现。

2、套接字编程流程:

1)启动Winsock(S&C):对Winsock DLL进行初始化,协商Winsock的版本支持,并分配必要的资源。

WSADATA wsaData;
if ( WSAStartup(MAKEWORD(1,1),&wsaData) ) //调用Windows Sockets DLL
{

TEXT("Winsock cannot initialized!");
WSACleanup();
return;
}

2)创建套接字(S&C):

Client = socket( PF_INET,SOCK_STREAM,0 );
if( Client == INVALID_SOCKET )
{

TEXT("Cannot create client socket!");
return;
}

3)绑定套接字(S):将本地地址绑定到所创建的套接字上。

if ( bind( s, (LPSOCKADDR)&m_sockServerAddr,sizeof(m_sockServerAddr) ) == SOCKET_ERROR )
{

TEXT("Cannot bind the socket!")
return;
}

4)套接字监听(S):服务器可以调用函数使其流套接字s处于监听状态。】

int listen(Socket s, int backlog);

5)等待连接(S):服务器调用accept函数从处于监听状态的流套接字s的客户连接请求队列中取出排在最前的一个客户请求,并且创建一个新的套接字来与客户套接字通信。

SOCKET accept(SOCKET s, struct sockadder FAR* addr, int FAR* addrlen);

6)套接字连接(C):将两个套接字连接起来准备通行。

iErrorCode = connect( Client,(LPSOCKADDR)&m_sockServerAddr,sizeof(m_sockServerAddr) );
if ( iErrorCode == SOCKET_ERROR )
{
TEXT("Connect fail!Reconnect please");
}
else
{
TEXT("Connect success." );

connected = TRUE;
}

7)发送数据(S&C):

if ( send( Client, (char*)m_wchMsg, sizeof(m_wchMsg), 0 ) == SOCKET_ERROR )
{
TEXT("Send msg fail!"));
}

8)接收数据(S&C):应该在一个单独的线程中接收并显示信息!!!!(道理同串口通信实验中的接收线程)

//创建事件,
SockEvt = CreateEvent(NULL,FALSE,FALSE,_T("Connected?"));
if(SockEvt == NULL)
{
TEXT("Cant create event");
}

thread = TRUE;
//创建一个接收字符的函数的线程
ReciveThread = AfxBeginThread(RecStr,(void*)this,THREAD_PRIORITY_NORMAL);

//...........................

UINT RecStr(LPVOID param)
{

iReturn = recv(p->Client,(char*)Rev,BufferSize, 0); //接收字符
if (iReturn == SOCKET_ERROR)
{
TEXT("Receive ERROR!");
}

//在这显示接收到的信息

}

9)中断连接(S&C):通知服务器或客户端停止接收和发送数据。

int shutdown(SOCKET s, int how);

10)关闭套接字(S&C):释放占用的资源。

int closesocket(SOCKET s);

套接字编程的流程大概就是这样。

分享到:
评论

相关推荐

    Win CE 6.0

    总结来说,Win CE 6.0作为微软在嵌入式领域的重量级产品,其强大的功能和灵活性在当时极大地推动了行业的发展,而Win CE 6.0模拟器则为开发者提供了高效便捷的开发和测试环境。随着技术的演进,Win CE的后续版本不断...

    win CE 虚拟键盘-DisplaySIP

    win CE 虚拟键盘-DisplaySIP

    套接字socket

    在IT行业中,套接字(Socket)是一种网络通信机制,它是不同计算机间进程通信的接口。TCP(Transmission Control Protocol)是传输层协议,是互联网上最常用的一种面向连接的、可靠的传输协议。"TCP-Server-Client...

    网络通信编程原始套接字程序设计ppt课件.ppt

    - 创建原始套接字需要使用`SOCK_RAW`套接字类型,这在Winsock2中得到了支持,但并非所有操作系统都支持,比如旧版的Windows 95和CE。 2. **创建原始套接字** - 创建原始套接字通常通过`socket()`或`WSASocket()`...

    Win CE车载导航进入CE界面

    Win CE,全称为Windows Embedded Compact,是微软推出的一款嵌入式操作系统,主要应用于各种设备,包括车载导航系统。车载导航通常集成了GPS定位、地图显示、路线规划等多种功能,而Win CE作为其底层操作系统,提供...

    WIN CE资源管理器

    WIN CE资源管理器

    win ce qq软件

    这个版本不仅保留了核心的聊天功能,如文字消息、表情发送、好友添加等,还针对Win CE的硬件特性和用户界面进行了优化,使其在小屏幕设备上也能流畅运行。此外,考虑到移动设备的续航问题,该版本还特别注重了功耗...

    win ce 模拟器

    Win CE 模拟器是一种软件工具,用于在个人计算机上模拟Windows CE(Windows Embedded Compact)操作系统。Windows CE是微软开发的一个实时嵌入式操作系统,广泛应用于掌上设备、工业自动化、车载信息娱乐系统等。Win...

    win CE6.0 SP1

    Windows Ebedded CE6.0 SP1.msi 是用作Windows Ebedded CE6.0 SP1.msi的补丁之用

    win ce 6.0基于PXA270 实验教程

    《基于Xscale270嵌入式Windows CE开发实验与实践》是一本深入探讨Win CE 6.0在PXA270处理器上应用的实验教程。该书着重讲解了如何在这一平台上进行系统开发、应用程序设计以及硬件交互,旨在帮助读者掌握在嵌入式...

    Win CE 上的WIN8主题 导航用一机多图

    【标题】"Win CE 上的WIN8主题 导航用一机多图"涉及的是在Windows CE操作系统上安装和使用Windows 8风格的主题,以及如何实现一台设备上切换多个图像作为导航界面。Windows CE是微软开发的一个嵌入式操作系统,主要...

    Win ce 模拟器

    Win ce 的模拟器 Win ce 的模拟器

    WIN CE 驱动开发教程

    《WIN CE驱动开发教程》是针对Windows CE操作系统中驱动程序开发的一份详尽指南。Windows CE,一个嵌入式操作系统,其驱动程序开发与传统的Windows系统有所不同,具有独特的特性和模型。 首先,所有驱动在Windows ...

    网络编程(源码+pdf教程).rar

    束时,我们打算对各种套接字模式以及I / O模型的优缺点进行总结。同时,帮助大家判断到底 哪一种最适合自己应用程序的要求。 所有Wi n d o w s平台都支持套接字以锁定或非锁定方式工作。然而,并非每种平台都支持 每...

    北电CE+ATM高速以太网专线方案

    总结来说,北电的CE+ATM高速以太网专线方案结合了PBB和PBT的优势,提供了一种高效、可靠的城域网连接方式,满足了大客户对高带宽、低延迟和高稳定性的需求。通过智能的网络管理和硬件配置,实现了端到端的服务保障,...

    Win CE遠程處理控制技術

    Win CE远程处理控制技术是嵌入式系统领域中一个重要的组成部分,主要用于实现设备间的远程监控、管理和维护。在本文中,我们将深入探讨Win CE(Windows Embedded Compact)操作系统如何支持远程控制功能,以及这一...

    Win CE远程桌面工具2.01

    《Win CE远程桌面工具2.01:连接与操作Windows CE设备的新里程》 在现代的嵌入式系统领域,Windows CE(Windows Embedded Compact)作为一款轻量级操作系统,广泛应用于各种工业设备和手持设备中。为了实现对这些...

    WIN CE Resco套件样例下载

    【标题】"WIN CE Resco套件样例下载"涵盖了在Windows CE环境下使用Resco工具集进行开发的一些实例代码和资源。Resco是一家知名的移动开发工具供应商,他们为.NET Compact Framework(如VB.NET和C#)提供了丰富的组件...

    WIN CE系统移动打印机测试程序

    "WIN CE系统移动打印机测试程序"指的是一个专门为运行在Windows CE操作系统上的移动设备设计的打印机测试应用程序。Windows CE是一个嵌入式操作系统,常用于掌上电脑、移动设备以及工业自动化设备等。这个测试程序是...

    OPC FOR WIN CE

    这可能包括使用套接字编程、共享内存等进程间通信(IPC)技术,或者利用WinCE的API创建适用于嵌入式环境的定制解决方案。 因此,OPC在WinCE上的实现需要对OPC规范有深刻理解,同时也要求对WinCE平台有深入的技术洞察...

Global site tag (gtag.js) - Google Analytics