[C++] socket - 1 [简单TCP通信C\S代码]
服务端:
#include<iostream>
#include<winsock2.h>
#include<stdio.h>
#pragma comment(lib,"WS2_32.lib")//显示连接套接字库
int main()
{
WSADATA data;//定义WSADATA结构体
WORD w=MAKEWORD(,);//定义版本号
char sztext[]="Welcome you\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 already start!\r\n");
while(true)
{
s1=::accept(s,(sockaddr*)&addr2,&n);//接收连接请求
if(s1!=NULL)
{
printf("%s already connect\r\n",inet_ntoa(addr2.sin_addr));
::send(s1,sztext,sizeof(sztext),);//向客户端发送字符数组
}
::closesocket(s);//关闭套接字句柄
::closesocket(s1);
::WSACleanup();//释放套接字库
if(getchar())
{
return ;
}
else
{
::Sleep();
}
}
}
客户端:
#include<iostream>
#include<winsock2.h>
#include<stdio.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("10.203.117.150");
printf("Clienct already start\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();
}
}
[C++] socket - 1 [简单TCP通信C\S代码]的更多相关文章
- python socket和简单tcp通信实现
python 服务端和客户端的简单交互 TCP服务端: 1 创建套接字,绑定套接字到本地IP与端口 s = socket.socket(socket.AF_INET,socket.SOCK_STREA ...
- TCP通信的客户端代码实现和TCP通信的服务器代码实现
TCP通信的客户端代码实现 package com.yang.Test.ServerStudy; import java.io.*; import java.net.Socket; /** * TCP ...
- 【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
NIO主要原理及使用 NIO采取通道(Channel)和缓冲区(Buffer)来传输和保存数据,它是非阻塞式的I/O,即在等待连接.读写数据(这些都是在一线程以客户端的程序中会阻塞线程的操作)的时候, ...
- TCP通信的实现代码
TCP通信 概念 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议. 从百科定义中就可以看出,TCP通信的基本条件 ...
- select实现简单TCP通信(ubuntu 18.04)
一.服务器程序(server.c) #include <stdio.h> #include <unistd.h> #include <stdlib.h> #incl ...
- 阻塞式I/O实现简单TCP通信
一.技术简介 (1)服务端打开两个端口9999和6666监听外来连接: (2)服务端的子进程通过端口9999监听外来消息,通过端口6666发送消息: (3)客户端的子进程处理外来消息,父进程发送消息 ...
- C# 简单Tcp通信demo
Client 代码 private void btnSend_Click(object sender, EventArgs e) { TcpClient tcpClient = new TcpClie ...
- QT 简单 TCP 通信,发送数据到服务器
1.首先 添加头文件 #include <QtNetwork/QTcpSocket> 并且 在 xxx.pro(xxx指工程的名称) 中QT += core gui下面,添加 下面两句句话 ...
- 【Java TCP/IP Socket】深入剖析socket——TCP通信中由于底层队列填满而造成的死锁问题(含代码)
基础准备 首先需要明白数据传输的底层实现机制,在http://blog.csdn.net/ns_code/article/details/15813809这篇博客中有详细的介绍,在上面的博客中,我们提 ...
随机推荐
- pyhton函数——黑板客老师课程学习
1.基本语法 语法: def func_name (arguments) 定义 statements return x,y x,y=func_name(para) 调用 作用域: 可以给内置的函 ...
- <img>标签
<img src="w3school.jpg" width="104" height="142" />注释:图像的名称和尺寸是以 ...
- lucene query
在lucene的搜索中,最重要的无疑就是对query的理解和掌握了.这里扒拉一下源码(版本3.5.0)的query和query实现: query是一个抽象类,实现类有以下几个: termQuery m ...
- 使用 BeanCopier 复制对象
Cglib是一款比较底层的操作java字节码的框架. BeanCopier是一个工具类,可以用于Bean对象内容的复制. 复制Bean对象内容的方法有很多,比如自己手动get set ,或者使用Pro ...
- Centos7 mysql-community-5.7.11编译安装
安装环境 [root@localhost ~]# cat /etc/centos-release CentOS Linux release 7.0.1406 (Core) 0x01 准备工作 1.到m ...
- GATK-BWA-MEM handle GRCh38 alternate contig mappings
1. For the Impatient # Download bwakit (or from <http://sourceforge.net/projects/bio-bwa/files/bw ...
- 30、准确计算CoreText高度的方法
http://ios-iphone.diandian.com/post/2012-03-29/18389515 - (int)getAttributedStringHeightWithString:( ...
- PHP疑惑
<?php $a = array(); $a[0] = 1; $a[1] = 2; $b = (object)$a; var_dump($b); 怎么从对象$b 中取值??? <?php ...
- Java 第三章 选择结构1
选择结构(一) 会使用基本的 if 选择结构 掌握逻辑运算符,掌握多重 if 选择结构 , 掌握嵌套 if 选择 结构 为什么需要 if 选择结构 例如: 如果张浩的 java 考试成绩大于 98分, ...
- Java list的用法排序及遍历
原文地址:http://baike.xsoftlab.net/view/208.html 1用法 ·ArrayList ·LinkedList 2排序 ·数字排序 ·中文排序 ·实体类排序 3遍历 · ...