upd套接字服务器与客户端交互C++代码示范
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++代码示范的更多相关文章
- Java如何使套接字向单个客户端显示消息?
在Java编程中,如何使用套接字向单个客户端显示消息? 以下示例演示了如何使用Socket类的ssock.accept()方法向单个套接字客户端上显示消息. package com.yiibai; i ...
- 游戏服务器与客户端交互,或者与跨服交互都有消息加密方式,为什么不明文传递,加md5校验呢
游戏服务器与客户端交互,或者与跨服交互都有消息加密方式,为什么不明文传递,加md5校验呢
- python2.7_2.2_在套接字服务器上使用ForkingMixIn
Linux系统下才能用本程序.因为有Frok新的进程.... 代码如下: # -*- coding: utf-8 -*- import os import socket import threadin ...
- Java学习笔记(3)----网络套接字服务器多线程版本
本例给出一个客户端程序和一个服务器程序.客户端向服务器发送数据.服务器接收数据,并用它来生成一个结果,然后将这个结果返回给客户端.客户端在控制台上显示结果.在本例中,客户端发送的数据是圆的半径,服务器 ...
- socket 套接字服务器端和客户端发送信息
import socket import threading host='' port=6889 def cilenThred(conn,addr): print("成功接受客户端{}的连接 ...
- 简单的XMPP服务器与客户端交互
由客户端发起 C: <stream:stream to="localhost" xmlns="jabber:client" xmlns:stream=&q ...
- 基于多进程的Tcp套接字服务器
服务端 import socketfrom multiprocessing import Process def task(c): print('顾客吃点啥') while True: data = ...
- Node.js中实现套接字服务
后端服务的一个重要的部分是通过套接字进行通信的能力. 套接字允许一个进程通过一个IP地址和端口与另一个进程通信 同一个服务器上的两个不同进程的进程间通信(IPC)或者访问一个完全不同 的服务器上运行的 ...
- nodejs 实现套接字服务
nodejs实现套接字服务 一 什么是套接字 1.套接字允许一个进程他通过一个IP地址和端口与另一个进程通信,当你实现对运行在同一台服务器上的两个不同进程的进程间通信或访问一个完全不同的服务器 ...
随机推荐
- 大O符号初学者指南
原文地址:https://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/ 计算机科学中,大O表示法被用来描述一个算法的性能或复杂度. ...
- 盘点Mysql的登陆方式
前置知识 我们想登陆到mysql中前提是肯定需要一个用户名和密码:比如 root root 在mysql中用户的信息会存放在 mysql数据库下的 user表中 可以 use mysql 然后sele ...
- [leetcode] 并查集(Ⅱ)
最长连续序列 题目[128]:链接. 解题思路 节点本身的值作为节点的标号,两节点相邻,即允许合并(x, y)的条件为x == y+1 . 因为数组中可能会出现值为 -1 的节点,因此不能把 root ...
- @Transactional 注解失效场景
@Transactional可以用在接口.类.类方法上. 作用于类:当把@Transactional注解放在类上时,表示该类的所有public方法都配置了该事物注解. 作用于方法:表示该方法配置了事物 ...
- 蓝桥杯(Java方法、详细解法分析)基础练习 阶乘计算
问题描述 给定n和len,输出n!末尾len位. 输入格式 一行两个正整数n和len. 输出格式 一行一个字符串,表示答案.长度不足用前置零补全. 样例输入 6 5 样例输出 00720 数据规模和约 ...
- Java实现 蓝桥杯 算法提高 复数四则运算
算法提高 6-17复数四则运算 时间限制:1.0s 内存限制:512.0MB 提交此题 设计复数库,实现基本的复数加减乘除运算. 输入时只需分别键入实部和虚部,以空格分割,两个复数之间用运算符分隔:输 ...
- Java实现 蓝桥杯VIP 算法提高 复数求和
算法提高 复数求和 时间限制:1.0s 内存限制:512.0MB 从键盘读入n个复数(实部和虚部都为整数)用链表存储,遍历链表求出n个复数的和并输出. 样例输入: 3 3 4 5 2 1 3 样例输出 ...
- java实现数字黑洞
任意一个 5 位数,比如:34256,把它的各位数字打乱,重新排列,可以得到 一个最大的数:65432,一个最小的数 23456. 求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不 ...
- Java学习的一般过程
伴随着科学技术的不断发展,世界开始走向信息化.网络化.大数据化.自然而然,计算机专业变得十分热门.尽管如此,计算机专业人才对社会来说仍然是供不应求,当然,这里指的是高层次技术人才.因此,对于我们这些占 ...
- 本地配置gitee
一 下载工具 Git-2.62.0-64-bit.exe 以上工具版本号不需要一样,安装完前两个后重新启动系统,再安装第3个. 二 码云网站注册 https://gitee.com/ 使用邮箱注册 注 ...