`
hcmfys
  • 浏览: 357583 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

vc socket编程

阅读更多

1.TCP服务器端:

#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"WS2_32.lib") 

void main()
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 
 wVersionRequested = MAKEWORD( 1, 1 );
 
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
  return;
 }
 

 if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) != 1 ) {
  WSACleanup( );
  return; 
 }
 SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);

 SOCKADDR_IN addrSrv;
 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_IN addrClient;
 int len=sizeof(SOCKADDR);

 while(1)
 {
  SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
  char sendBuf[100];
  sprintf(sendBuf,"Welcome %s to http://www.sunxin.org",
   inet_ntoa(addrClient.sin_addr));
  send(sockConn,sendBuf,strlen(sendBuf)+1,0);
  char recvBuf[100];
  recv(sockConn,recvBuf,100,0);
  printf("%s\n",recvBuf);
  closesocket(sockConn);
 }
}
 

 

 2.TCP客户端:

#include <Winsock2.h>
#include <stdio.h>

void main()
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 
 wVersionRequested = MAKEWORD( 1, 1 );
 
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
  return;
 }
 

 if ( LOBYTE( wsaData.wVersion ) != 1 ||
        HIBYTE( wsaData.wVersion ) != 1 ) {
  WSACleanup( );
  return; 
 }
 SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);

 SOCKADDR_IN addrSrv;
 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));

 char recvBuf[100];
 recv(sockClient,recvBuf,100,0);
 printf("%s\n",recvBuf);
 send(sockClient,"This is lisi",strlen("This is lisi")+1,0);

 closesocket(sockClient);
 WSACleanup();
}

 

 3.UDP服务器端

#include <Winsock2.h>
#include <stdio.h>

void main()
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 
 wVersionRequested = MAKEWORD( 1, 1 );
 
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
  return;
 }
 

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

 SOCKET sockSrv=socket(AF_INET,SOCK_DGRAM,0);
 SOCKADDR_IN addrSrv;
 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));

 SOCKADDR_IN addrClient;
 int len=sizeof(SOCKADDR);
 char recvBuf[100];

 recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)&addrClient,&len);
 printf("%s\n",recvBuf);
 closesocket(sockSrv);
 WSACleanup();
}

 

 4.UDP客户端

 

#include <Winsock2.h>
#include <stdio.h>

void main()
{
 WORD wVersionRequested;
 WSADATA wsaData;
 int err;
 
 wVersionRequested = MAKEWORD( 1, 1 );
 
 err = WSAStartup( wVersionRequested, &wsaData );
 if ( err != 0 ) {
  return;
 }
 

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

 SOCKET sockClient=socket(AF_INET,SOCK_DGRAM,0);
 SOCKADDR_IN addrSrv;
 addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
 addrSrv.sin_family=AF_INET;
 addrSrv.sin_port=htons(6000);

 sendto(sockClient,"Hello",strlen("Hello")+1,0,
  (SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
 closesocket(sockClient);
 WSACleanup();
}


 

 

分享到:
评论

相关推荐

    VC学习笔记-基于TCP的socket编程

    ### 基于TCP的Socket编程在VC中的应用与实现 #### 一、知识点概览 在VC(Visual C++)环境下进行网络编程时,基于TCP的socket编程是实现客户端与服务器之间通信的重要方式之一。本文将从初始化、创建socket、绑定...

    VC socket编程

    Socket编程是计算机网络编程中的重要组成部分,特别是在Visual C++(简称VC)环境下,它提供了用于创建网络应用程序的接口。在本教程中,我们将深入探讨如何使用VC进行Socket编程,实现服务器与客户端之间的通讯,...

    VC下SOCKET编程实例(服务器+客户端)源代码

    VC下SOCKET编程实例源代码,分为服务器端和客户端两部分,初学Socket编程最佳选择。

    vc socket编程,多线程聊天,包括客户端以及服务器端

    本项目以"VC Socket编程,多线程聊天,包括客户端以及服务器端"为主题,使用了Microsoft Visual C++ 6.0(简称VC6.0)作为开发工具,展现了如何通过C++语言实现基于Socket的多线程聊天应用。 首先,我们要理解...

    vc socket 编程

    根据给定的信息,我们可以推断出这里涉及到的是与VC++环境下使用socket编程相关的知识点,但提供的代码示例实际上展示的是共享内存(Shared Memory)和信号量(Semaphore)的应用,而不是直接涉及socket编程。...

    VC Socket编程入门级代码

    Socket编程是计算机网络通信中的重要技术,特别是在Windows环境下,Visual C++(简称VC++)提供了丰富的库支持,使得开发者能够方便地进行Socket编程。本文将深入讲解如何在VC++环境中开始Socket编程,以及如何通过...

    VC socket编程的服务器端

    在IT行业中,网络通信是不可或缺的一部分,而Socket编程则是实现这一功能的核心技术。本文将深入探讨如何使用VC++(Visual C++)进行Socket编程,尤其是服务器端的实现。结合描述和标签,我们可以推断出本实例是关于...

    VC Socket编程 MYQQ.zip_VC Socket_socket 双向通信_socket双向通信_socket双向通讯

    实现类似QQ的socket双向通信,另附两个TCP/UDP通讯栗子

    VC Socket编程

    Socket编程是计算机网络通信中的重要技术,特别是在Visual C++(简称VC)环境下,开发者经常使用Winsock库来进行网络编程。本篇文章将详细讲解在VC下使用Winsocket进行Socket编程的相关知识点,以及如何通过实例——...

    VCSocket编程实例.zip_NetAssist_TCP 助手 源码_enemy69b_网络助手实例_网络调试助手源码

    网络调试助手源码可移植,可修改,支持tcp/ip通信协议

    MFC实现的Socket编程

    总之,MFC实现的Socket编程项目通过VC6.0展示了如何在Windows环境下使用C++进行网络通信。理解MFC中的Socket类以及它们与Winsock API的关系,是掌握这一技术的关键。同时,对于实际项目来说,设计良好的通信协议和...

    vc.rar_VC socket_VC Socket_socket vc_socket编程_vc client

    socket编程示例;有server 和 client两种模式;包含全部源码,是vc++ socket编程的范例

    vc ,socket编程含客户端和服务端

    Socket编程是计算机网络通信中的重要技术,特别是在Windows环境下,Visual C++(简称VC)提供了丰富的API函数和类库来支持socket编程。本压缩包包含了客户端(client)和服务端(server)的示例代码,这对于理解和...

    VC socket 服务器编程实例源码

    Socket编程在IT行业中是网络通信的基础,特别是在Windows环境下,Visual C++(简称VC)提供了强大的支持,让开发者能够创建高效且可靠的网络应用。本实例主要关注的是使用VC6.0进行Socket服务器编程,通过理解与实践...

    VC雕虫小技集.rar_Socket网络编程_VC Socket_Vc_socket vc_vc 网络编程

    "VC雕虫小技集.doc"可能包含了更多关于VC++ Socket编程的技巧和实践经验,例如异步Socket编程、性能优化、错误调试等。而"www.pudn.com.txt"可能是从某个编程资源网站下载资料时保留的源地址信息,这类资源往往能...

Global site tag (gtag.js) - Google Analytics