// 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. TMS320C54x系列DSP的CPU与外设——第5章 数据寻址

    第5章 数据寻址 C54x DSP提供7种基本寻址方式. ■ Immediate addressing uses the instruction to encode a fixed value.    ...

  2. SQL语句技巧_索引的优化_慢查询日志开启_root密码的破解

    1.正则表达式的使用 regexp例:select name,email from t where email regexp '@163[.,]com$'使用like方式查询selct name,em ...

  3. php全角字符转换为半角函数

    <?php /** * 全角字符转换为半角 * * @param string $str * @return string public function Sbc2Dbc($str) { $ar ...

  4. C# is和as操作符

    is和as操作符 is操作符:检查对象是否与给定类型兼容. 说明: 1.如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true, ...

  5. BIP_开发案例04_通过BI Publisher实现打印报表的二维码(案例)(待整理)

    2014-01-01 Created BaoXinjian

  6. CF 120F Spider 树的直径 简单题

    一个男孩有n只玩具蜘蛛,每只蜘蛛都是一个树的结构,现在男孩准备把这n只小蜘蛛通过粘贴节点接在一起,形成一只大的蜘蛛.大的蜘蛛也依然是树的结构.输出大的蜘蛛的直径. 知识: 树的直径是指树上的最长简单路 ...

  7. REDHAT6.2配置yum源(64位)(转载)

    From:http://www.dedecms8.com/db/php_bc/12322.html 1.删除redhat原有的yum rpm -aq|grep yum|xargs rpm -e --n ...

  8. WebView用法

    在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件. 什么是webkit WebKit是Mac OS X v10.3及以上版本所包含的软件框架(对 ...

  9. struts (四) path DMI

    1.path 常使用绝对路径 path = request.getContextPath(); basepath = request.getscheme+"://"+request ...

  10. wait(0)

    public final synchronized void join(long millis) throws InterruptedException { long base = System.cu ...