⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ttt.cpp

📁 线程通信程序
💻 CPP
字号:
#include "stdafx.h"
#include "../common/InitSock.h"
#include <stdio.h>
CInitSock initSock;		// 初始化Winsock库

void test111()
{
//	AfxMessageBox("asdfasdf");
}

UINT threadProc1(LPVOID LPARAM)
{

	SOCKET s1 = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
		if(s1 == INVALID_SOCKET)
		{
			printf("Failed socket() %d \n", ::WSAGetLastError());
			return 0;
		}
		
		// 也可以在这里调用bind函数绑定一个本地地址
		// 否则系统将会自动安排
			
		// 填写远程地址信息
		sockaddr_in sin1; 
		sin1.sin_family = AF_INET;
		sin1.sin_port = htons(4567);
		// 注意,这里要填写服务器程序所在机器的IP地址
		// 如果你的计算机没有联网,直接使用127.0.0.1即可
		sin1.sin_addr.S_un.S_addr = INADDR_ANY;
		
		// 绑定这个套节字到一个本地地址
		if(::bind(s1, (LPSOCKADDR)&sin1, sizeof(sin1)) == SOCKET_ERROR)
		{
			printf("Failed bind() \n");
			return 0;
		}
	
		// 接收数据
		char buff1[1024];
		sockaddr_in addr1;
		int nLen = sizeof(addr1);
		while(TRUE)
		{
			int nRecv = ::recvfrom(s1, buff1, 1024, 0, (sockaddr*)&addr1, &nLen); 
			if(nRecv > 0)
			{
				buff1[nRecv] = '\0';
				AfxMessageBox(buff1,MB_OK,NULL);
				//printf(" 接收到数据(%s):%s", ::inet_ntoa(addr.sin_addr), buff);
			}
		}
	
	
		::closesocket(s1);
		
	
	return 0;
}

UINT threadProc2(LPVOID LPARAM)
{
	SOCKET s2 = ::socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
	if(s2 == INVALID_SOCKET)
	{
		printf("Failed socket() %d \n", ::WSAGetLastError());
		return 0;
	}
	
	// 也可以在这里调用bind函数绑定一个本地地址
	// 否则系统将会自动安排
		
	// 填写远程地址信息
	sockaddr_in sin2; 
	sin2.sin_family = AF_INET;
	sin2.sin_port = htons(4568);
	// 注意,这里要填写服务器程序所在机器的IP地址
	// 如果你的计算机没有联网,直接使用127.0.0.1即可
	sin2.sin_addr.S_un.S_addr = INADDR_ANY;
	
	// 绑定这个套节字到一个本地地址
	if(::bind(s2, (LPSOCKADDR)&sin2, sizeof(sin2)) == SOCKET_ERROR)
	{
		printf("Failed bind() \n");
		return 0;
	}

	// 接收数据
	char buff2[1024];
	sockaddr_in addr2;
	int nLen = sizeof(addr2);
	while(TRUE)
	{
		int nRecv = ::recvfrom(s2, buff2, 1024, 0, (sockaddr*)&addr2, &nLen); 
		if(nRecv > 0)
		{
			buff2[nRecv] = '\0';
			AfxMessageBox(buff2,MB_OK,NULL);
			//printf(" 接收到数据(%s):%s", ::inet_ntoa(addr.sin_addr), buff);
		}
	}


	::closesocket(s2);
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -