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. rfind()的使用

    今天学了一个新函数 rfind 使用: str=123/456 str.rfind('/',1,6) 返回的是从1到6找最后一个/的位置

  2. Linux下搭建mongDB环境

    参考: https://blog.csdn.net/qq_35763837/article/details/79654023 https://www.linuxidc.com/Linux/2016-0 ...

  3. GNS3内网配置虚拟机测试

    一.背景:考虑在GNS3内网配置一台虚拟机系统,用于大流量测试. 二.环境: 1.win10系统已安装:GNS3和配套GNS3VM虚拟机(版本号:2.2.7):vmware虚拟机winxp(名称为:W ...

  4. java方法句柄-----2.方法句柄的获取、变换、特殊方法句柄

    目录 1.获取方法句柄 1.1查找构造方法.一般方法和静态方法的方法句柄 1.2 查找类中的特殊方法(类中的私有方法) 1.3 查找类中静态域和一般域 1.4 通过反射API得到的Constructo ...

  5. Java实现 蓝桥杯 算法训练 Number Challenge(暴力)

    试题 算法训练 Number Challenge 资源限制 时间限制:3.0s 内存限制:512.0MB 问题描述 定义d(n)为n的约数个数.现在,你有三个数a,b,c.你的任务是计算下面式子mod ...

  6. Java实现 蓝桥杯 算法提高 P0101

    算法提高 P0101 时间限制:1.0s 内存限制:256.0MB 提交此题  一个水分子的质量是3.0*10-23克,一夸脱水的质量是950克.写一个程序输入水的夸脱数n(0 <= n &l ...

  7. Java实现 LeetCode 27 移除元素

    27. 移除元素 给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额 ...

  8. Java 是如何实现跨平台的?

    Java 是如何实现跨平台的? 注意:跨平台的是 Java 程序,而不是 JVM.JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM 答:我们编写的 ...

  9. Java实现第八届蓝桥杯外星日历

    外星日历 题目描述 某星系深处发现了文明遗迹. 他们的计数也是用十进制. 他们的文明也有日历.日历只有天数,没有年.月的概念. 有趣的是,他们也使用了类似"星期"的概念, 只不过他 ...

  10. 制作seata docker镜像

    seata是阿里巴巴的一款开源的分布式事务框架,官方已经支持docker了,但是因为业务的需要,需要自己定制. 制作docker镜像 官方的Dockerfile.下载seata-server-1.1. ...