upd套接字服务器与客户端交互C++代码示范

 // vc2_2_4UDPserver_Txwtech.cpp : 定义控制台应用程序的入口点。
//服务器端
#include "StdAfx.h"
#include <WinSock2.h>
#include<stdio.h>
#include<Windows.h>
#pragma comment(lib,"WS2_32.lib")
int main()
{
WSADATA data;
WORD w=MAKEWORD(,);
char sztext[]="欢迎您\r\n";
::WSAStartup(w,&data);
SOCKET s;
s=::socket(AF_INET, SOCK_DGRAM,);
sockaddr_in addr,addr2;
int n=sizeof(addr2);
char buff[]={};
addr.sin_family=AF_INET;
addr.sin_port=htons();
addr.sin_addr.S_un.S_addr=INADDR_ANY;
::bind(s,(sockaddr*)&addr,sizeof(addr));
printf("UDP服务器已经启动txwtech,输入qq可退出\r\n");
while()
{
char cc[]={}; //此处如果索引值设置小了,就会出问题。不如:char cc[1];是由于建立的数组下标溢出造成的
//c=getchar();
// c='';
//cc[1024]={0};
printf("我说:");
scanf("%s",cc);
//sztext=c;
// strcpy(sztext,c);
if (strcmp(cc,"qq")==) {
printf("即将退出%s",cc);
::Sleep();
::closesocket(s);
::WSACleanup();
strcpy(cc,"");
return ;
}
strcat(sztext,cc);
if(::recvfrom(s,buff,,,(sockaddr*)&addr2,&n)!=)
{
//printf("%s已经连接上\r\n",inet_ntoa(addr2.sin_addr));
printf("客户说:%s\r\n",buff);
//strcat(sztext,buff); // ::sendto(s,sztext,sizeof(sztext),0,(sockaddr*)&addr2,n);
::sendto(s,cc,sizeof(cc),,(sockaddr*)&addr2,n);
// break; } }
::closesocket(s);
::WSACleanup(); if(getchar())
{
return ;
//::sendto(s,sztext,sizeof(sztext),0,(sockaddr*)&addr2,n);
}
else
{
::Sleep();
}
}
 // vc2_2_4upd_Client.cpp : 定义控制台应用程序的入口点。
//txwtech,客户端 #include "stdafx.h"
#include <winsock2.h>
#include <stdio.h>
#include <Windows.h>
#pragma comment(lib,"WS2_32.lib")
int main()
{
WSADATA data;
WORD w=MAKEWORD(,);
::WSAStartup(w,&data);
SOCKET s;
s=::socket(AF_INET,SOCK_DGRAM,);
sockaddr_in addr,addr2;
int n=sizeof(addr2);
char buff[]={};
addr.sin_family=AF_INET;
addr.sin_port=htons();
addr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
printf("UDP客户端已经启动txwtech,输入qq可退出\r\n");
char sztext[]="您好\r\n";
while()
{
char cc1[];
//c=getchar();
// c='';
printf("我说:");
scanf("%s",cc1);
//sztext=c;
// strcpy(sztext,c);
if (strcmp(cc1,"qq")==) {
printf("即将退出%s",cc1);
::Sleep();
::closesocket(s);
::WSACleanup();
return ;
}
// sztext=cc;
strcpy(sztext,cc1);
//if(::sendto(s,sztext,sizeof(sztext),0,(sockaddr*)&addr,n)!=0)
if(::sendto(s,cc1,sizeof(sztext),,(sockaddr*)&addr,n)!=)
{
::recvfrom(s,buff,,,(sockaddr*)&addr2,&n);
printf("服务器说:%s\r\n",buff);
/*::closesocket(s);
::WSACleanup();*/
}
}
if(getchar())
//return 0;
::sendto(s,sztext,sizeof(sztext),,(sockaddr*)&addr,n);
else
::Sleep();
}

upd套接字服务器与客户端交互C++代码示范的更多相关文章

  1. Java如何使套接字向单个客户端显示消息?

    在Java编程中,如何使用套接字向单个客户端显示消息? 以下示例演示了如何使用Socket类的ssock.accept()方法向单个套接字客户端上显示消息. package com.yiibai; i ...

  2. 游戏服务器与客户端交互,或者与跨服交互都有消息加密方式,为什么不明文传递,加md5校验呢

    游戏服务器与客户端交互,或者与跨服交互都有消息加密方式,为什么不明文传递,加md5校验呢

  3. python2.7_2.2_在套接字服务器上使用ForkingMixIn

    Linux系统下才能用本程序.因为有Frok新的进程.... 代码如下: # -*- coding: utf-8 -*- import os import socket import threadin ...

  4. Java学习笔记(3)----网络套接字服务器多线程版本

    本例给出一个客户端程序和一个服务器程序.客户端向服务器发送数据.服务器接收数据,并用它来生成一个结果,然后将这个结果返回给客户端.客户端在控制台上显示结果.在本例中,客户端发送的数据是圆的半径,服务器 ...

  5. socket 套接字服务器端和客户端发送信息

    import socket import threading host='' port=6889 def cilenThred(conn,addr): print("成功接受客户端{}的连接 ...

  6. 简单的XMPP服务器与客户端交互

    由客户端发起 C: <stream:stream to="localhost" xmlns="jabber:client" xmlns:stream=&q ...

  7. 基于多进程的Tcp套接字服务器

    服务端 import socketfrom multiprocessing import Process def task(c): print('顾客吃点啥') while True: data = ...

  8. Node.js中实现套接字服务

    后端服务的一个重要的部分是通过套接字进行通信的能力. 套接字允许一个进程通过一个IP地址和端口与另一个进程通信 同一个服务器上的两个不同进程的进程间通信(IPC)或者访问一个完全不同 的服务器上运行的 ...

  9. nodejs 实现套接字服务

    nodejs实现套接字服务     一 什么是套接字 1.套接字允许一个进程他通过一个IP地址和端口与另一个进程通信,当你实现对运行在同一台服务器上的两个不同进程的进程间通信或访问一个完全不同的服务器 ...

随机推荐

  1. 转 vue过滤器使用

    简单介绍一下过滤器,顾名思义,过滤就是一个数据经过了这个过滤之后出来另一样东西,可以是从中取得你想要的,或者给那个数据添加点什么装饰,那么过滤器则是过滤的工具.例如,从['abc','abd','ad ...

  2. tp5增删改查基本操作

    //插入数据 $res = Db::execute('insert into phptab(info) values("小张")'); dump($res); //修改数据 $re ...

  3. UIAutomator2的API文档(三)

    1.UI对象识别器Selector 用法d(text='Clock', className='android.widget.TextView') 支持以下参数,详细信息可参考UiSelector Ja ...

  4. Beta冲刺 —— 5.31

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.讨论并解决每个人存在的问 ...

  5. jchdl - GSL值的传播

    https://mp.weixin.qq.com/s/jgMljoca-Cwe9x0NaTLzZg   GSL的拓扑模型是线和节点连接的模型,值的传播,即是值在线和节点之间传播和转化的过程.   值的 ...

  6. jchdl - RTL实例 - Mux

    https://mp.weixin.qq.com/s/OmQRQU2mU2I5d-qtV4PAwg   二选一输出.   参考链接 https://github.com/wjcdx/jchdl/blo ...

  7. MySQL 高级—— Join 、索引 、优化

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Join 查询 1.SQL执行顺序(一般情况下) 1.1 手写顺序: SELECT DISTINCT ...

  8. Redis 入门到分布式 (四) 瑞士军刀Redis其他功能

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 目录: 慢查询 Pipeline 发布订阅 Bitmap(位图) HyperLogLog GEO 一.慢 ...

  9. Java实现 LeetCode 373 查找和最小的K对数字

    373. 查找和最小的K对数字 给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k. 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2. 找 ...

  10. Java实现 LeetCode 278 第一个错误的版本

    278. 第一个错误的版本 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的. ...