基于TCP的通信 客户端
#include <WINSOCK2.H> #include <stdio.h>
// socket 套接字 #pragma comment (lib,"Ws2_32") //library DWORD WINAPI ThreadInput(LPVOID lpParam);
DWORD WINAPI ThreadOutput(LPVOID lpParam); SOCKET sClient; void main()
{
//first 初始化DLL
WSADATA wsadata;
if (WSAStartup(MAKEWORD(,),&wsadata)!=)
{
printf("Init Error\n"); return ;
} //second 创建套接字 sClient = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); if (sClient == INVALID_SOCKET)
{
printf("Create Listen Is Error\n"); return;
} sockaddr_in LocalAddr; LocalAddr.sin_family = AF_INET; LocalAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); //127.0.0.1 LocalAddr.sin_port = htons(); if (connect(sClient,(sockaddr*)&LocalAddr,sizeof(LocalAddr))==SOCKET_ERROR)
{ // WSAENETDOWN
int a = GetLastError();
closesocket(sClient); printf("Connect Is Error\n"); return;
} HANDLE hThread[]; //这里是整个程序的核心部分我们一定要那个管道图 hThread[] = CreateThread(NULL,,ThreadOutput,NULL,,NULL); hThread[] = CreateThread(NULL,,ThreadInput,NULL,,NULL); WaitForMultipleObjects(,hThread,TRUE,INFINITE); } DWORD WINAPI ThreadInput(LPVOID lpParam)
{
SOCKET s = sClient; //该线程函数是从套接字中获取信息并且通过管道注入cmd的工作函数 char Buffer[] = {}; DWORD dWrite = ;
DWORD dwRecvd = ;
while (TRUE)
{ scanf("%s",Buffer); send(s,Buffer,strlen(Buffer),);
} return ;
} DWORD WINAPI ThreadOutput(LPVOID lpParam)
{ SOCKET s = sClient; //该线程函数是从被控端返给控端信息的线程函数 char Buffer[]={};
while (TRUE)
{ int Ret = recv(s,Buffer,,); if(Ret<)
{
break;
} Buffer[Ret]='\0'; printf("%s",Buffer); } return ;
}
基于TCP的通信 客户端的更多相关文章
- 链路的有效性检测 及 基于TCP的通信为什么需要RETRY
一.链路的有效性检测 当网络发生单通.连接被防火墙Hang住.长时间GC或者通信线程发生非预期异常时,会导致链路不可用且不易被及时发现. 特别是异常发生在凌晨业务低谷期间,当早晨业务高峰期到来时,由于 ...
- 【TCP/IP网络编程】:04基于TCP的服务器端/客户端
摘要:结合前面所讲述的知识,本篇文章主要介绍了简单服务器端和客户端实现的框架流程及相关函数接口. 理解TCP和UDP 根据数据传输方式的不同,基于网络协议的套接字一般分为TCP套接字和UDP套接字(本 ...
- 基于TCP协议的客户端
基于TCP协议的客户端 此客户端能用于下一篇博客的单线程服务器和多线程服务器 import java.io.BufferedReader; import java.io.IOException; im ...
- Learning-Python【28】:基于TCP协议通信的套接字
什么是 Socket Socket 是应用层与 TCP/IP 协议通信的中间软件抽象层,它是一组接口.在设计模式中,Socket 其实就是一个门面模式,它把复杂的 TCP/IP 协议族隐藏在 Sock ...
- 基于TCP的安卓客户端开发
一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户 ...
- Linux 系统编程 学习:008-基于socket的网络编程3:基于 TCP 的通信
背景 上一讲我们介绍了 基于UDP 的通信 这一讲我们来看 TCP 通信. 知识 TCP(Transmission Control Protoco 传输控制协议). TCP是一种面向广域网的通信协议, ...
- C/C++网络编程4——实现基于TCP的服务器端/客户端1
一.TCP服务器调用顺序: 调用socket函数创建套接字:声明并初始化地址信息结构体变量:调用bind函数向套接字分配地址:调用listen函数进入等待连接请求状态,只有调用了listen函数后客户 ...
- Android 基于TCP多线程通信实现群聊天的功能
1.TCP多线程原理图 2.实现方法 (1)服务器端 (2)客户端 3.java后台代码 主界面 package com.lucky.test50socket2; import android.ann ...
- 基于TCP的通信程序设计
套接字(Socket)是一种跨主机进程之间的双向通信接口,每个打开的套接字都可以通过一个套接字描述符来描述,因此可以使用低级文件编程库操作套接字. TCP是一中面向连接的网络传输控制协议.它每发送一个 ...
随机推荐
- [转发] 老叶观点:MySQL开发规范之我见
原文: http://imysql.com/2015/07/23/something-important-about-mysql-design-reference.shtml 老叶观点:MySQL开发 ...
- [转载] tmux的使用tips
原文: http://tangosource.com/blog/a-tmux-crash-course-tips-and-tweaks/
- 使用Nexus搭建Maven私服
1. 环境搭建 1.1 下载 http://www.sonatype.org/nexus/ NEXUS OSS [OSS = Open Source Software,开源软件--免费] NE ...
- 共享内存 最快IPC 的原因
参考 http://www.360doc.com/content/13/0817/11/7377734_307777806.shtml 我的理解,这里指的是用户进程的用户态空间和内核空间,也就是那个3 ...
- 转:printf打印输出2进制
转自:C语言中printf直接打出2进制数是%什么?16进制是什么? void print_2(int val2) { unsigned ; //从低位到高位,低端字节计算机 ; k <= ; ...
- FATAL ha.BootstrapStandby: Unable to fetch namespace information from active NN at ***
This problem (Unable to fetch namespace information from active NN) occurs, because the active namen ...
- Sqlserver_判断该路径是否存在该文件
declare @result int =0declare @path nvarchar(200)='d:\1.csv'execute master.dbo.xp_fileexist @path ,@ ...
- 转!!Java JTable 根据表格内容 自动调整表格列宽
//根据表格内容 自动调整列宽http://blog.sina.com.cn/s/blog_5e54d6140100s1d3.html
- 犯过错误的C语言问题
1 memcpy函数: 函数原型:void *memcpy(void *dest, void *src, unsigned int count); 函数源码: void *memcpy1(void * ...
- 记一次基于Unity的Profiler性能分析
A. WaitForTargetFPS: Vsync(垂直同步)功能所,即显示当前帧的CPU等待时间 B. Overhead: Profiler总体时间-所有单项的记录时间总和.用于 ...