socket---TCP服务器界面

代码如下,操作在后

#include "resource1.h"

#include<winsock2.h> #pragma comment(lib,"ws2_32.lib") #define DEFAULT_iPort 5000 LRESULT CALLBACK DialProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance, LPSTR lpCmdLine, int nCmdShow) { DialogBox(hInstance,(LPCSTR)IDD_FORMVIEW, NULL,(DLGPROC)DialProc); return 0; } LRESULT CALLBACK DialProc(HWND hDIg, UINT uID, WPARAM wParam, LPARAM lParam) {             char ip[16]; char port[5];//端口号 char recvBuf[1000];//缓存区大小 char sendBuf[1000]; SOCKET sListen, sAccept; SOCKADDR_IN ser, cli; int iLen = sizeof(cli); sListen = socket(AF_INET, SOCK_STREAM,0); sAccept= socket(AF_INET, SOCK_STREAM,0); switch (uID) { case WM_COMMAND://对话框消息 switch(wParam) { case IDC_IPSTART: {    GetDlgItemText(hDIg, IDC_IP,ip, 16); GetDlgItemText(hDIg, IDC_PORT,port, 16); ser.sin_family = AF_INET; ser.sin_addr.s_addr = inet_addr(ip); ser.sin_port = htons(atoi(port)); bind(sListen, (sockaddr *)&ser, sizeof(ser)); listen(sListen, 5); sAccept = accept(sListen, (sockaddr *)&cli, &iLen); if (INVALID_SOCKET == sAccept) { SetDlgItemText(hDIg, IDC_EDIT1, "服务器创建失败"); } else { SetDlgItemText(hDIg, IDC_RECVBUF, "服务器创建成功"); } } break; case IDC_RECVBUF: if (INVALID_SOCKET == sAccept) { } else { recv(sAccept, recvBuf, sizeof(recvBuf), 1000); SetDlgItemText(hDIg, IDC_RECVBUF, recvBuf); } break; case IDC_SENDBUF: GetDlgItemText(hDIg, IDC_SENDBUF, sendBuf, 1000); send(sAccept, sendBuf, sizeof(recvBuf), 1000); SetDlgItemText(hDIg, IDC_SENDBUF, ""); break; case IDC_STOP://关闭窗口  { closesocket(sAccept);   closesocket(sListen);   WSACleanup(); EndDialog(hDIg,wParam);   } break; } break; default: break; }

return DefWindowProc(hDIg, uID, wParam, lParam);//让系统自动处理一些默认消息

一.

}

资源文件->添加->添加资源->找到如下图所示,新建

二.

把这个字删除,点属性,找到这一个风格把Child换成Overlapped或者Popup都可以(版本不同可能问题不一样)

然后往这个大界面上加东西,打开工具箱

选择你想要的,然后创建界面

根据你创建的ID写代码。

例如

我的示例边框ID 是IDC_EDIT1,

代码这样写:

然后创建失败就会在这个边框出现消息

至于代码中的函数会用就行

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Visual Studio 2008英文正式版已经发布在MSDN

今天登陆MSDN发现Visual Studio 2008英文正式版已经发布,MSDN订阅者已经可以下载.这次公布的Visual Studio 2008包括所有T...

1906
来自专栏哈雷彗星撞地球

RunLoop 总结:RunLoop的应用场景(二)让Timer正常运转

上一篇讲了使用RunLoop保证子线程的长时间存活,而不是执行完任务后就立刻销毁的应用场景。这一篇就讲述一下RunLoop如何保证NSTimer在视图滑动时,依...

1274
来自专栏点点滴滴

windows平台KMS激活秘钥

1923
来自专栏自由而无用的灵魂的碎碎念

介绍CodeRush Xpress for C#

用过Eclipse编写java代码,感觉它的某些功能在visual studio 中是没有的,比如Toggle Mark Occurrences:

1042
来自专栏『不羁阁』行走的少年专栏

iOS多线程:『RunLoop』详尽总结RunLoop

5174
来自专栏.NET开发者社区

​(码友推荐)2018-07-03 .NET及相关开发资讯速递

7.Book Review: ASP.NET Core 2 and Angular 5

1445
来自专栏逸鹏说道

在ASP.NET 5中使用SignalR

题记:SignalR作为ASP.NET中进行Web实时双向通信的组件,在ASP.NET 5中也得到了同步发展。不过,用法和之前还是在细节上有所不同,而资料又相对...

33910
来自专栏NetCore

【翻译】使用Visual Studio创建Asp.Net Core MVC (一)

This tutorial will teach you the basics of building an ASP.NET Core MVC web app ...

20110
来自专栏林德熙的博客

Windows Community Toolkit 3.0 新功能

本文告诉大家一个令人震惊的消息,Windows Community Toolkit 有一个大更新,现在的版本是 3.0 。最大的提升就是 WinForm 和 W...

801
来自专栏林德熙的博客

win10 uwp 入门

关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451

1341

扫码关注云+社区