• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 简单的socket编程入门示例

简单的socket编程入门示例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了socket编程入门,socket网络编程入门,c socket网络编程入门,socket编程挂云主机,socket网络编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

功能简单实现client输入内容发送到server端输出

 // 建立socket socket.
 SOCKET client;
 client = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
 if ( client == INVALID_SOCKET )
 {
  cout<<"failed to create client socket!"<<endl;
  WSACleanup();
  return 0;
 }

 // 连接到服务器.
 sockaddr_in clientService;
 clientService.sin_family = AF_INET;
 clientService.sin_addr.s_addr = inet_addr( "127.0.0.1" );
 clientService.sin_port = htons( 13579 );

 if ( connect( client, (SOCKADDR*) &clientService, sizeof(clientService) ) == SOCKET_ERROR)
 {
  cout<<"Failed to connect"<<endl;
  closesocket(client);
  WSACleanup();
  return 0;
 }

 // 发送数据.
 int bytesSent;
 char sendbuf[4096] = "Client: Sending data.";
 while(TRUE)
 {
  bytesSent = send( client, sendbuf, strlen(sendbuf), 0 );
  gets_s(sendbuf, 4096);
 }

 closesocket(client);
 WSACleanup();
 return 0;
}
</div>

using namespace std;

int main()
{
 WSADATA wsaData;

 int iInit = WSAStartup(MAKEWORD(2, 2), &wsaData);
 if (iInit != NO_ERROR)
 {
  cout<<"failed to initialize!"<<endl;
  return 0;
 }

 SOCKET server = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP);
 if (server == INVALID_SOCKET)
 {
  cout<<"failed to create server socket!"<<endl;
  WSACleanup();
  return 0;
 }

 sockaddr_in bindinfo;
 bindinfo.sin_family = AF_INET;
 bindinfo.sin_addr.s_addr =  inet_addr( "127.0.0.1" );
 bindinfo.sin_port = htons(13579);
 if ( bind( server, (SOCKADDR*) &bindinfo, sizeof(bindinfo) ) == SOCKET_ERROR )
 {
  cout<<"failed to bind!"<<endl;
  closesocket(server);
  WSACleanup();
  return 0;
 }

 //listen
 if (listen(server, 1) == SOCKET_ERROR) {
  cout<<"listen failed"<<endl;
  closesocket(server);
  WSACleanup();
  return 0;
 }

 //accept and block
 SOCKET socketWork = accept(server, NULL, NULL);
 if (socketWork == INVALID_SOCKET) {
  wprintf(L"accept failed with error: %ld\n", WSAGetLastError());
  closesocket(server);
  WSACleanup();
  return 0;
 }

 int byteRecv = SOCKET_ERROR;
 char recvBuf[4096] = "";

 while(TRUE)
 {
  byteRecv = recv(socketWork, recvBuf, 4096, 0);
  if (byteRecv == 0)
  {
   break;
  }
  recvBuf[byteRecv] = 0;
  cout<<recvBuf<<endl;
 }

 closesocket(server);
 WSACleanup();
 return 0;
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 简单的socket编程入门示例

相关文章

  • 2017-05-28如何在C语言的宏中使用类型关键字
  • 2017-05-28c语言生成随机uuid编码示例
  • 2017-05-28C语言中读取时间日期的基本方法
  • 2017-05-28基于C语言实现shell指令的详解
  • 2017-05-28C++开发:为什么多线程读写shared_ptr要加锁的详细介绍
  • 2017-05-28Linux c中define的用法小结
  • 2017-05-28随机数字去掉重复和排序的方法
  • 2017-05-28详解C语言中printf输出的相关函数
  • 2017-05-28getdate()函数的用法实例
  • 2017-05-28linux下基于C语言的信号编程实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 可变参数函数
    • 深入解析C++编程中的运算符重载
    • C语言逻辑运算符知识整理
    • C++俄罗斯方块游戏 无需图形库的俄罗斯方块
    • 详谈C++的内存泄漏问题
    • C++你最好不要做的几点小结
    • c++ STL容器总结之:vertor与list的应用
    • C和C++ const的声明差异
    • 初中毕业能学会编程吗?
    • C语言合并排序及实例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有