通信-新手关于socket的小问题 各位大大来看看谢谢啦.。

问题描述

新手关于socket的小问题 各位大大来看看谢谢啦.。

socket的通信中 client端接受的消息总是慢一拍怎么回事

解决方案

原因是多了'n':
scanf("%sn", cmd);
改成
scanf("%s", cmd);
也是OK的

解决方案二:

服务端代码:
#include "stdafx.h"
#include
#include
#pragma comment(lib,"ws2_32.lib")

int _tmain(int argc, _TCHAR* argv[])
{
BOOL bret = false;
do
{
WSADATA wsadata;
WSAStartup(MAKEWORD(2, 2), &wsadata);
if (2 != LOBYTE(wsadata.wVersion) || 2 != HIBYTE(wsadata.wVersion))
break;

    SOCKET socksever;
    socksever = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (INVALID_SOCKET == socksever)
        break;

    sockaddr_in addrsever = { 0 };
    addrsever.sin_family = AF_INET;
    addrsever.sin_port = htons(8383);

    if (SOCKET_ERROR == bind(socksever, (SOCKADDR*)&addrsever, sizeof(addrsever)))
        break;

    if (SOCKET_ERROR == listen(socksever, 5))
        break;
    SOCKET sockclient;
    sockclient= accept(socksever, nullptr, nullptr);
    if (INVALID_SOCKET == socksever)
        break;

    char cmd[MAXBYTE] = { 0 };
    while (true)
    {
        printf("please input your cmd:n");
        scanf("%sn", cmd);
        send(sockclient, cmd, strlen(cmd)+1, 0);

    }
    system("pause");
    bret = true;
} while (false);
WSACleanup();
return 0;

}

解决方案三:

这是客户端的:
#include "stdafx.h"
#include
#include
#include
#pragma comment (lib,"ws2_32.lib")

int _tmain(int argc, _TCHAR* argv[])
{
WSADATA wsadata;
WSAStartup(MAKEWORD(2, 2), &wsadata);
if (2 != LOBYTE(wsadata.wVersion) || 2 != HIBYTE(wsadata.wVersion))
exit(0);

    SOCKET sockclient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (INVALID_SOCKET == sockclient)
        exit(0);

    sockaddr_in addsever = { 0 };
    addsever.sin_family = AF_INET;
    addsever.sin_port = htons(8383);
    addsever.sin_addr.S_un.S_addr = inet_addr("192.168.23.7");

    if (SOCKET_ERROR == connect(sockclient, (SOCKADDR*)&addsever, sizeof(addsever)))
        exit(0);
    printf("call succeedn");

    int recvlen = { 0 };
    char message[MAXBYTE] = { 0 };
    while (true)
    {
    recvlen=recv(sockclient, message,MAXBYTE,0);
    if (recvlen>0)
    {
        printf(message);
        printf("n");
    }
    }

WSACleanup();
return 0;

}

解决方案四:

谢谢各位大大,帮小生一看

解决方案五:

谢谢各位大大,帮小生一看

解决方案六:

scanf("%sn", cmd);
把这个换成以下的语句试试(头文件增加 #include ):
std::cin>>cmd;

解决方案七:

客户端接受的消息本来就是通过服务端转发的信息,,

时间: 2024-11-05 14:58:14

通信-新手关于socket的小问题 各位大大来看看谢谢啦.。的相关文章

大神救我-新手求助关于一些小问题 程序!!!!!!!!!

问题描述 新手求助关于一些小问题 程序!!!!!!!!! 1.怎样用JAVA编写资源管理器 打开有目录的: 2.怎样用JAVA访问 网页 输入IP访问 3.怎么样用JAVA实现两台电脑的链接 (写这些需要学会哪些,难不难?) 解决方案 (1)递归遍历目录,api是现成的,另外会用swt的treeview做个界面 (2)http://www.tuicool.com/articles/7zui2y3 (3)socket http://www.cnblogs.com/linzheng/archive/

iOS App通信之local socket示例_IOS

之前看到一篇文章介绍到App之间的五种通信方式,它分别有URL Scheme,Keychain,UIPastedboard,UIDocumentInteractionController以及利用socket进行本地通信.前面4种都有用到过,也相对比较简单,几行代码的事.对于最后一种之前一直没用到过(原谅我还是个小白),所以今天试着写了下,这儿记录在这里和大家分享. 好了,废话不多说,开始: 首先,说下它的原理,其实很简单,一个App在本地的端口进行TCP的bind和listen,另外一个App在

线程-socket通信中,socket建立连接后能进行长时间的反复读写操作吗?

问题描述 socket通信中,socket建立连接后能进行长时间的反复读写操作吗? 服务端和客户端以socket建立连接进行通信,我想以单线程实现多文件传输,循环发送多个文件,只是对输入输出流进行打开和关闭,为什么第一个文件传完后进行第二个文件传输时会抛异常:Socket is closed?求高手指点迷津,难道一定要关闭socket然后重新连接吗? 解决方案 不需要,肯定是你代码写得有问题.不妨把代码贴出来看看 解决方案二: 通过Socket连接一次传输多个文件 解决方案三: 上代码看看,估计

安卓 java socket ip-手机安卓客户端和电脑服务器进行socket通信,为什么socket不通?

问题描述 手机安卓客户端和电脑服务器进行socket通信,为什么socket不通? 手机安卓客户端和电脑服务器进行socket通信,程序都是java写的,客户端socket函数填的是电脑的外网ip(百度搜出来那个),手机用的是3g信号,但是socket不通..是ip填错了吗? 解决方案 楼主 我不会 你要是实现了 可以和我交流一下么?

编程-是个C++打字游戏代码,新手,有很多错误,帮忙改下,谢谢,急用

问题描述 是个C++打字游戏代码,新手,有很多错误,帮忙改下,谢谢,急用 #include graphics.h #include conio.h #include time.h// 欢迎界面 #include iostream #include thread using namespace std; void welcome() { // 输出屏幕提示 cleardevice(); setcolor(YELLOW); setfont(50, 0, "黑体"); outtextxy(1

【C/S通信交互之SOCKET篇】COCOS2DX(CLIENT)使用BSD SOCKET与MINA(SERVER)手机网游通信框架!

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/844.html 其实对于此篇算是对于这段时间网络研究的一个总结. 对于手游网络通信的交互,一般情况下,Socket长连接直接使用Mina框架即可,对于Http短连接使用Servlet 入口即可(那么对于后期将陆续更新Servlet博文) 那么本篇主要介绍Socket长连接,当然与此配对的跨平台通信则选择了BSD

通信-android 客户端socket连接服务器,socket何时close

问题描述 android 客户端socket连接服务器,socket何时close 假设socket连接好了,现在客户端向服务器发送完了数据,这个时候需要关闭socket吗?如果关闭后,某个时候又需要发送其他数据,再建立连接? 还是说建立通信协议,一次socket连接后一直保持通信状态,根据通信协议对不同的数据进行不同的处理,然后等客户端程序退出时再关闭socket. 解决方案 Android客户端通过Socket连接服务器Android客户端与java服务器端的Socket连接Socket服务

DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 ._DB2

首先,是添加数据库实例: DB2的实例之间是相互独立的,实例可以被看作是数据库的容器.而默认DB2装好后会自己建一个名为DB2的实例.我们这里需要新建一个,命令这样敲: 在db2的命令行工具里面打开命令行,然后输入: 复制代码 代码如下: db2icrt INSTNAME 它这个实例名还挺恶心的,必须是小于8个字符的名字. 再用命令行创建好以后才能用那个控制中心的添加实例的功能来添加刚才创建的实例.其实这个添加只是把已有的实例添加到GUI的控制中心里,而不是创建实例....所以,必须注意的是,在

滑动门,简洁,新手上路制作篇 (小鸽子系列)_javascript技巧

流行音乐 美女写真 平面设计 网络学堂 恋爱宝典 Q小鸽子 流行音乐 的内容 美女写真 的内容 平面设计 的内容 网络学堂 的内容 恋爱宝典 的内容 [Q小鸽子] 的内容