1. 首先,要编写windows下socket程序,必须要加入Winsock支持

2. 服务端监听程序(Server.cpp)

#include<winsock2.h>                        //包含头文件
#include<stdio.h>
#include<windows.h>
#pragma comment(lib,"WS2_32.lib") //显式连接套接字库 int main() //主函数开始
{
WSADATA data; //定义WSADATA结构体对象
WORD w=MAKEWORD(,); //定义版本号码
char sztext[]="Welcome\r\n"; //定义并初始化发送到客户端的字符数组
::WSAStartup(w,&data); //初始化套接字库
SOCKET s,s1; //定义连接套接字和数据收发套接字句柄
s=::socket(AF_INET,SOCK_STREAM,); //创建TCP套接字
sockaddr_in addr,addr2; //定义套接字地址结构
int n=sizeof(addr2); //获取套接字地址结构大小
addr.sin_family=AF_INET; //初始化地址结构
addr.sin_port=htons();
addr.sin_addr.S_un.S_addr=INADDR_ANY;
::bind(s,(sockaddr*)&addr,sizeof(addr)); //绑定套接字
::listen(s,); //监听套接字
printf("Server Started\r\n"); //输出提示信息 while(true)
{
s1=::accept(s,(sockaddr*)&addr2,&n); //接受连接请求
if(s1!=NULL)
{
printf("%sConnected Successful!\r\n",inet_ntoa(addr2.sin_addr));
::send(s1,sztext,sizeof(sztext),); //向客户端发送字符数组
}
::closesocket(s); //关闭套接字句柄
::closesocket(s1);
::WSACleanup(); //释放套接字库
if(getchar()) //如果有输入,则关闭程序
{
return ; //正常结束程序
}
else
{
::Sleep(); //应用睡眠0.1秒
}
}
}

3. 客户端请求程序(Client.cpp)

#include<winsock2.h>                //包含头文件
#include<stdio.h>
#include<windows.h>
#pragma comment(lib,"WS2_32.lib") //显式连接套接字库 int main() //主函数开始
{
WSADATA data; //定义WSADATA结构体对象
WORD w=MAKEWORD(,); //定义版本号码
::WSAStartup(w,&data); //初始化套接字库
SOCKET s; //定义连接套接字句柄
char sztext[]={};
s=::socket(AF_INET,SOCK_STREAM,); //创建TCP套接字
sockaddr_in addr; //定义套接字地址结构
addr.sin_family=AF_INET; //初始化地址结构
addr.sin_port=htons();
addr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
printf("Client Started\r\n"); //输出提示信息
::connect(s,(sockaddr*)&addr,sizeof(addr));
::recv(s,sztext,sizeof(sztext),);
printf("%s\r\n",sztext);
::closesocket(s); //关闭套接字句柄
::WSACleanup(); //释放套接字库
if(getchar()) //如果有输入,则关闭程序
{
return ; //正常结束程序
}
else
{
::Sleep(); //程序睡眠
}
}

Hello Socket - 第一个Socket程序的更多相关文章

  1. C#使用Socket实现一个socket服务器与多个socket客户端通信

    在分布式调度系统中,如果要实现调度服务器与多台计算节点服务器之间通信,采用socket来实现是一种实现方式,当然我们也可以通过数据存储任务,子节点来完成任务,但是往往使用数据作为任务存储都需要定制开发 ...

  2. mysql unix domain socket and network socket, ssh key

    当主机填写为localhost时mysql会采用 unix domain socket连接 当主机填写为127.0.0.1时mysql会采用tcp方式连接 这是linux套接字网络的特性,win平台不 ...

  3. (一)你的第一个Socket程序

    概述 本文通过一个最简单的Socket通信来对每一步做通俗易懂的讲解让你了解这些函数到底是干什么用的.下面的代码虽然是用Pyhton实现的,但是你要知道这些通信机制并不是Python所定义的,因为这些 ...

  4. 第一个socket服务端程序

    第一个socket服务端程序 #include <stdio.h> #include <stdlib.h> #include <string.h> #include ...

  5. 我的第一个Socket程序-SuperSocket使用入门(一)

    第一次使用Socket,遇到过坑,也涨过姿势,网上关于SuperSocket的教程基本都停留在官方给的简单demo上,实际使用还是会碰到一些问题,所以准备写两篇博客,分别来介绍SuperSocket以 ...

  6. 我的第一个Socket程序-SuperSocket使用入门(三)

    本来博客都停了,不打算更了,但今天百度一个socket的问题时无意间发现第一篇的socket文章权重仅次于SuperSocket网站,顿时觉得自己6到不行,再写一篇,讨论下数据持久化的问题 去年搞那个 ...

  7. java socket传送一个结构体给用C++编写的服务器解析的问题

    另一端是Java写客户端程序,两者之间需要通信.c++/c接收和发送的都是结构体,而Java是直接发送的字节流或者byte 数组.解决方法:c++/c socket 在发送结构体的时候其实发送的也是字 ...

  8. Node.js + Web Socket 打造即时聊天程序嗨聊

    前端一直是一块充满惊喜的土地,不仅是那些富有创造性的页面,还有那些惊赞的效果及不断推出的新技术.像node.js这样的后端开拓者直接将前端人员的能力扩大到了后端.瞬间就有了一统天下的感觉,来往穿梭于前 ...

  9. ZeroMQ接口函数之 :zmq_sendmsg – 从一个socket上发送一个消息帧

    ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq-sendmsg zmq_sendmsg(3)        ØMQ Manual - ØMQ/4.1.0 Name ...

随机推荐

  1. Python与SQLite日期时间函数的使法

    SQLite的时间函数跟Python的时间函数有些许差别,所以稍做记录,供自己以后查询. 网上有将SQLite官方WIKI内容翻译成中文的文章,大家有兴趣可以搜索一下,我这里单纯记录一下个人比较常用的 ...

  2. POJ 1182 食物链 【带权并查集/补集法】

    动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种.有人用两种说 ...

  3. 【小摘抄】关于C++11下 string各类用法(持续更新)

    http://blog.csdn.net/autocyz/article/details/42391155 提供了最简单的详解 下列对本人近期开发中的一些心得体会进行摘抄 1.string按照字符进行 ...

  4. 动若脱兔:深入浅出angr--初步理解符号执行以及angr架构

    一:概论 angr作为符号执行的工具,集成了过去的许多分析方式,它不仅能进行动态符号执行,而且还能进行很多静态分析,他在分析二进制程序中能发挥很大的作用,下面为一些应用: 1:利用符号执行探究执行路径 ...

  5. ARP扫描工具arp-scan

    ARP扫描工具arp-scan   arp-scan是Kali Linux自带的一款ARP扫描工具.该工具可以进行单一目标扫描,也可以进行批量扫描.批量扫描的时候,用户可以通过CIDR.地址范围或者列 ...

  6. Java 对象池实现

    http://blog.csdn.net/bryantd/article/details/1100019 http://www.cnblogs.com/devinzhang/archive/2012/ ...

  7. oracle latch工作原理

    latch是一种轻量级用于保护oracle共享内存结构,用户并发操作一致性的串行化锁定机制,如SGA中,各种数据被反复从磁盘读取到内存,又被重新写回到磁盘上,如果有并发用户做相同的事情,oracle必 ...

  8. NOIP2018训练题集

    1. CZday3C 给定有m个数的集合,从其中任选一个子集满足全部&后不为零,问方案数. 考虑对二进制位容斥,问题转化为求包含某个二进制位集合的数的个数,通过类似FMT的DP求解. #inc ...

  9. BZOJ 2705 [SDOI2012]Longge的问题(欧拉函数)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2705 [题目大意] 求出∑gcd(i,N)(1<=i<=N) [题解] $ ...

  10. 找出N个数中最小的k个数问题(复杂度O(N*logk))

    这是一个经典的算法题,下面给出的算法都在给定的数组基础上进行,好处时不用分配新的空间,坏处是会破坏原有的数组,可以自己分配新的空间以避免对原有数组的破坏. 思路一 先直接排序,再取排序后数据的前k个数 ...