// soClient.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#include <winsock2.h>
#pragma comment(lib,"ws2_32.lib") int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsadata;
WORD dVer=MAKEWORD(,);
WSAStartup(dVer,&wsadata); SOCKET S=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(S==INVALID_SOCKET)
{
return FALSE;
}
sockaddr_in serverAddr;
serverAddr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
serverAddr.sin_family=AF_INET;
serverAddr.sin_port=htons();
if(::connect(S,(LPSOCKADDR)&serverAddr,sizeof(serverAddr))==SOCKET_ERROR)
{
if(WSAGetLastError()==)
{
printf("服务器未开启");
}
return FALSE;
} char buff[];
int irecv=::recv(S,buff,,);
if(irecv>)
{
buff[irecv] = '\0'; //返回数据不会结束所以人工添加
printf("返回数据为:%s",buff);
} closesocket(S);
return ;
}

服务器

 // soServer.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#include "winsock2.h"
#pragma comment(lib,"ws2_32.lib") int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsadata;
WORD dVer=MAKEWORD(,);
if(WSAStartup(dVer,&wsadata)!=)
{
return FALSE;
} sockaddr_in sin;
sin.sin_family=AF_INET;
sin.sin_addr.S_un.S_addr=INADDR_ANY;
sin.sin_port=htons();
SOCKET S=::socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if(::bind(S,(LPSOCKADDR)&sin,sizeof(sin))==SOCKET_ERROR)
{
return FALSE;
} if(::listen(S,)==SOCKET_ERROR)
{
return FALSE;
} sockaddr_in remoteAddr;
int nAddrLen = sizeof(remoteAddr);
SOCKET sClient;
char text[]="you have connected!welcome!";
printf("等待接受连接。\r\n");
while(TRUE)
{
sClient=::accept(S,(LPSOCKADDR)&remoteAddr,&nAddrLen);
if(sClient==SOCKET_ERROR)
{
printf("获取失败");
continue;
}
printf("接收到新连接:%s",inet_ntoa(remoteAddr.sin_addr));
send(sClient,text,strlen(text),);
closesocket(sClient);
}
closesocket(S);
return ;
}

简单的TCPIP 客户端 服务器的更多相关文章

  1. [Netty] - Netty入门(最简单的Netty客户端/服务器程序)

    Java中的NIO是一种解决阻塞式IO问题的基本技术,但是NIO的编写对java程序员是有比较高的要求的.那么Netty就是一种简化操作的一个成熟的网络IO编程框架.这里简单介绍一个程序,代码是< ...

  2. [转]Netty入门(最简单的Netty客户端/服务器程序)

    Java中的NIO是一种解决阻塞式IO问题的基本技术,但是NIO的编写对java程序员是有比较高的要求的.那么Netty就是一种简化操作的一个成熟的网络IO编程框架.这里简单介绍一个程序,代码是< ...

  3. Linux 下 简单客户端服务器通讯模型(TCP)

    原文:Linux 下 简单客户端服务器通讯模型(TCP) 服务器端:server.c #include<stdio.h> #include<stdlib.h> #include ...

  4. 入门教程:.NET开源OpenID Connect 和OAuth解决方案IdentityServer v3 创建简单的OAuth2.0服务器,客户端和API(三)

    本教程的目的在于创造尽可能简单的identityserver安装作为一个oauth2授权服务器.这应该能够让你了解一些基本功能和配置选项(完整的源代码可以发现在这里).在后面的文档中会介绍更多的高级功 ...

  5. Python的套接字、IPv4和简单的客户端/服务器编程

    #!/usr/bin/env python # -*- coding: utf-8 -*- import socket from binascii import hexlify import sys ...

  6. python 异步IO-aiohttp与简单的异步HTTP客户端/服务器

    参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143209814 ...

  7. 微服务(入门四):identityServer的简单使用(客户端授权)

    IdentityServer简介(摘自Identity官网) IdentityServer是将符合规范的OpenID Connect和OAuth 2.0端点添加到任意ASP.NET核心应用程序的中间件 ...

  8. Golang学习-第二篇 搭建一个简单的Go Web服务器

    序言 由于本人一直从事Web服务器端的程序开发,所以在学习Golang也想从Web这里开始学起,如果对Golang还不太清楚怎么搭建环境的朋友们可以参考我的上一篇文章 Golang的简单介绍及Wind ...

  9. 使用OAuth保护REST API并使用简单的Angular客户端

    1.概述 在本教程中,我们将使用OAuth保护REST API并从简单的Angular客户端使用它. 我们要构建的应用程序将包含四个独立的模块: 授权服务器 资源服务器 UI implicit - 使 ...

随机推荐

  1. 2014 年10个最佳的PHP图像操作库

    2014 年10个最佳的PHP图像操作库   Thomas Boutell 以及众多的开发者创造了以GD图形库闻名的一个图形软件库,用于动态的图形计算. GD提供了对于诸如C, Perl, Pytho ...

  2. Android SDK的docs访问速度很慢(新)

    #设置环境变量 名称:ANDROID_SDK_HOME 值:我的为-->E:\android\android-sdk #代码编译及运行 1.把下面的代码保存为:AndroidDocRepair. ...

  3. solace

    最近做了一个关于solace的项目,有时间来总结一下 1>. solace 介绍 2>. solace 应用(C#)

  4. FindViewByMe插件

    FindViewByMe 是一个自动生成 FindViewById 代码的 IDEA/Android Studio 插件, 支持 Activity.Fragment 和 ViewHolder 中的 f ...

  5. hibernate 大对象映射

    1. 在pojo类中 用Blob类和Clob public class Student { private int id; private String name; private int age; ...

  6. OAF_架构MVC系列3 - View的概述(概念)

    2014-06-18 Created By BaoXinjian

  7. 编写第一个java程序

    安装了一个编辑器,Notepad++,这个编辑器以前在写PHP的时候就喜欢用,呵呵,现在写java也先沿用这个这个编辑器吧. 代码: public class Test{ public static ...

  8. python 多线程抓取动态数据

    利用多线程动态抓取数据,网上也有不少教程,但发现过于繁杂,就不能精简再精简?! 不多解释,直接上代码,基本上还是很好懂的. #!/usr/bin/env python # coding=utf-8 i ...

  9. rails4.2.6配置发送邮件

    调试了很久,最后终于可以发送了 1 在config/environments/development.rb文件里配置邮件信息 config.action_mailer.raise_delivery_e ...

  10. MongoDB Tool

    robomongo MongoBooster: [推薦]MongoChef:http://3t.io/mongochef/download/ MongoVUE 是个比较好用的MongoDB客户端,不过 ...