Client与Server
监听套接字,通讯套接字,初始化网卡,多线程。想查自己的IP,ipconfig
服务端
#include "stdafx.h"
#include <WinSock2.h> //套接字 socket CS--->Client Server
#include <iostream>
#include <Windows.h>
using namespace std; #pragma comment(lib,"ws2_32.lib") //动态库的静态加载 DWORD WINAPI THreadFunction(LPVOID lParam);
SOCKET ClientSocket;
int main()
{
//如果要使用ws2_32.lib模块下的函数时,要初始化该模块 WSADATA wsaData = {};
WORD wVersion = MAKEWORD(,); //宏,第一个2放在低8位上,第二个放在高8位上。 if(WSAStartup(wVersion,&wsaData)!=) //一参数为WORD类型,IN,需要赋好值传进来,二参数为LP指针,OUT,需要初始化,传进来接受数据
{
printf("Init Socket Error\r\n");
return ;
} //返回值为0,成功
//套接字相当于保安
SOCKET ListenSocket;//监听套接字 Server socket大写为数据类型,小写为函数 (数据流) (数据报)
ListenSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); //创建监听套接字,第一参数服务于什么协议是TCP还是UDP,第二参数中SOCK_STREAM流传送适用于TCP,一个一个,SOCK_DGRAM报传送适用于UDP,一页一页的
if(ListenSocket==INVALID_SOCKET) //创建失败,套接字不存在
{
WSACleanup();
return ;
}
//初始化网卡,相当于给保安建个房子
SOCKADDR_IN LocalAddress;
LocalAddress.sin_family = AF_INET; //IP不要写死
LocalAddress.sin_addr.S_un.S_addr = INADDR_ANY; //传IP地址的两种方式,直接强制转换为u_long型,或者像下面一样一个一个输
LocalAddress.sin_port = htons(); // Host To net string //端口连接,不能冲突(0~1024不要用,已被买断,60000多后面的端口也不要用,被QQ买断) /*
LocalAddress.sin_addr.S_un.S.un_b.s_b1 = '192';
LocalAddress.sin_addr.S_un.S.un_b.s_b2 = '168';
LocalAddress.sin_addr.S_un.S.un_b.s_b3 = '1';
LocalAddress.sin_addr.S_un.S.un_b.s_b4 = '100';
*/ //绑定 让保安住到房子里 大数据小指针,解出三成员
if(bind(ListenSocket,(sockaddr*)&LocalAddress,sizeof(SOCKADDR_IN))==SOCKET_ERROR)
{
closesocket(ListenSocket); //套接字存在,关闭套接字回收资源
WSACleanup();
return ;
} //监听
listen(ListenSocket,); //队列里面有多少未决的连接 //Block 阻塞函数,信号不到达,得不到返回 TCP 上线请求
SOCKADDR_IN RemoteAddress; //客户端的IP地址
int iRemoteAddressLen = sizeof(SOCKADDR_IN);
ClientSocket = accept(ListenSocket,(sockaddr*)&RemoteAddress,&iRemoteAddressLen); //返回值为套接字 //启动一个线程
CreateThread(NULL,,(LPTHREAD_START_ROUTINE)THreadFunction,NULL,,NULL); while(true)
{
char szBufferData[0x1000] = {};
scanf("%s",szBufferData); send(ClientSocket,szBufferData,strlen(szBufferData),);
}
WSACleanup(); //库的回收
return ;
} DWORD WINAPI THreadFunction(LPVOID lParam)
{
while(true)
{
char szBufferData[0x1000] = {};
int iReturn = recv(ClientSocket,szBufferData,0x1000,);
szBufferData[iReturn] = '\0';
printf("%s\r\n",szBufferData);
}
} 客户端
#include "stdafx.h"
#include <WinSock2.h> //套接字 socket
#include <iostream>
#include <Windows.h>
using namespace std; #pragma comment(lib,"ws2_32.lib") //动态库的静态加载 DWORD WINAPI THreadFunction(LPVOID lParam);
SOCKET ClientSocket;//通讯套接字 Client
int main()
{
//如果要使用ws2_32.lib模块下的函数时,要初始化该模块 WSADATA wsaData = {};
WORD wVersion = MAKEWORD(,); if(WSAStartup(wVersion,&wsaData)!=)
{
printf("Init Socket Error\r\n");
return ;
} ClientSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if(ClientSocket==INVALID_SOCKET) //创建通讯套接字
{
WSACleanup();
return ;
}
//初始化网卡
SOCKADDR_IN ServerAddress;
ServerAddress.sin_family = AF_INET;
ServerAddress.sin_addr.S_un.S_addr = inet_addr("192.168.0.102");
ServerAddress.sin_port = htons(); connect(ClientSocket,(sockaddr*)&ServerAddress,sizeof(SOCKADDR_IN)); //返回值为int CreateThread(NULL,,(LPTHREAD_START_ROUTINE)THreadFunction,NULL,,NULL); while(true)
{
char szBufferData[0x1000] = {};
int iReturn = recv(ClientSocket,szBufferData,0x1000,);
szBufferData[iReturn] = '\0';
printf("%s\r\n",szBufferData);
}
WSACleanup(); //库的回收
return ;
} DWORD WINAPI THreadFunction(LPVOID lParam)
{
while(true)
{
char szBufferData[0x1000] = {};
scanf("%s",szBufferData); send(ClientSocket,szBufferData,strlen(szBufferData),);
}
}

Client与Server的更多相关文章
- UDP编程中client和server中使用recvfrom和sendto的区别
client中: sendto(sfd,buf,strlen(buf),0,(struct sockaddr *)&saddr,len); recvfrom(sfd,buf ...
- tmux protocol version mismatch (client 7, server 6)
$ tmux attach protocol version mismatch (client 7, server 6) $ pgrep tmux 3429 $ /proc/3429/exe atta ...
- New full duplex HTTP tunnel implementation (client and server)
https://issues.jboss.org/browse/NETTY-246?page=com.atlassian.jirafisheyeplugin:fisheye-issuepanel —— ...
- jvm的client和server
最近研究c++代码调用java的jar,发现64位的下的jvm在server路径,而32位的jvm则存在client路径下面,于是十分好奇,查了下,这里做个记录 JVM Server模式与client ...
- Android简单的聊天室开发(client与server沟通)
请尊重他人的劳动成果.转载请注明出处:Android开发之简单的聊天室(client与server进行通信) 1. 预备知识:Tcp/IP协议与Socket TCP/IP 是Transmission ...
- The client and server cannot communicate, because they do not possess a common algorithm
The client and server cannot communicate, because they do not possess a common algorithm This was re ...
- go http client, http server
Go语言中的HTTP client, server非常简单.具体如下. HTTP Server package main import ( "fmt" "html&quo ...
- onvif协议client与server对接
happytimesoft有完整的c语言开发的onvif client和server,一共1000$,真便宜,haha. http://www.happytimesoft.com/products/m ...
- 带入gRPC:gRPC Streaming, Client and Server
带入gRPC:gRPC Streaming, Client and Server 原文地址:带入gRPC:gRPC Streaming, Client and Server 前言 本章节将介绍 gRP ...
- ESP8266 station模式下建立client、server TCP连接
程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...
随机推荐
- hdu_5707_Combine String("巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5707 题意:给你三个字符串 a,b,c,问你 c能否拆成a,b,a,b串的每一个字符在c中不能变 题解 ...
- read file in a single line
String text= new Scanner(File('input.txt')).useDelimiter("\\A").next(); java version!
- bg-render+bg-class+filter
重点: 1.多层render写法参数下面的html代码段,外层bg-render---><script type='text/html'>--->{{for}}--->b ...
- const、volatile、mutable的用法
http://blog.csdn.net/wuliming_sc/article/details/3717017 const.volatile.mutable的用法 const修饰普通变量和指针 co ...
- .net简单的静态页生成
1.得到实体对象model,读取模板 string htmlMaster = File.ReadAllText(HttpContext.Current.Server.MapPath("/ma ...
- Qt之QTextCodec乱谈
何处开始呢? 一旦在Qt程序中出现latin1字符集以外的字符,几乎大家无一例外的会用到 QTextCodec. 而不少网友不分青红皂白,一旦用到中文,就同时使用下面3条指令(其中textc 取为 g ...
- flex超链接
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- .net网站报错:对象的当前状态使该操作无效
微软在2011年12月29号发布的2011年最后一个更新让哥哥为程序出现的异常头痛了一天. 这个异常在页面数据量小的时候并不会触发,只在页面数据量大的情况下才会出现,开始解决起来让人无从下手,最后才发 ...
- ReactiveCocoa & FRP & MVVM
Functional Reactive Programming(以下简称FRP)是一种响应变化的编程范式.先来看一小段代码 a = 2 b = 2 c = a + b // c is 4 b = 3 ...
- AutoTile 自动拼接(一) 学习与实践
恩,大家好,这两天江苏冷空气袭击,下了今年 第一场第二场雪. 不过今天我要说的 ,和 上面的 屁关系都没有. 今天要说的是 2d无缝自动拼接.大家有没有玩过 RPG Maker VX Ace. 类似 ...
