• tcp socket


    server

    // ConsoleApplication9.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include<winSock2.h>//包含头文件
    #include <stdio.h>
    #include <windows.h>
    #pragma comment(lib,"WS2_32.lib")//显示连接套接字库
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	WSADATA data;//定义WSADATA结构体对象
    	WORD w = MAKEWORD(2, 0);//定义版本号
    	char sztext[] = "欢迎你
    ";//定义并初始化发送到客户端的字符数组
    	::WSAStartup(2, &data);//初始化套接字库
    	SOCKET s, s1;//定义连接套接字和数据收发套接字句柄
    	s = ::socket(AF_INET, SOCK_STREAM, 0);//创建tcp套接字
    	sockaddr_in addr, addr2;//定义套接字地址结构
    	int n = sizeof(addr2);//获取套接字地址结构大小
    	addr.sin_family = AF_INET;//初始化地址结构
    	addr.sin_port = htons(75);
    	addr.sin_addr.S_un.S_addr = INADDR_ANY;
    	::bind(s, (sockaddr*)&addr, sizeof(addr));//绑定套接字
    	::listen(s, 5);//监听套接字
    	printf("服务器已启动");//输出提示信息
    	while (true)
    	{
    		s1 = ::accept(s, (sockaddr*)&addr2, &n);//接受连接请求
    		if (s1 != NULL)
    		{
    			printf("已经连接上");
    			::send(s1, sztext, sizeof(sztext), 0);//向客户端发送字符数组
    		}
    		::closesocket(s);//关闭套接字句柄
    		::closesocket(s1);
    		::WSACleanup();//释放套接字库
    		if (getchar())
    		{
    			return 0;
    		}
    		else{
    			::Sleep(100);
    		}
    	}
    
    
    	return 0;
    }
    
    
    

    client

    #include <WinSock2.h>//包含套接字库
    #include <stdio.h>
    #include <windows.h>
    #pragma comment(lib,"WS2_32.lib")//显示连接套接字库
    int main(){
    	WSADATA data;//定义WSADATA结构体对象
    	WORD w = MAKEWORD(2, 0);//定义版本号
    	::WSAStartup(w, &data);//初始化套接字库
    	SOCKET s;//定义连接套接字句柄
    	char sztex[10] = { 0 };
    	s = ::socket(AF_INET, SOCK_STREAM, 0);//创建tcp套接字
    	sockaddr_in addr;//定义套接字地址结构
    	addr.sin_family = AF_INET;//初始化地址结构
    	addr.sin_port = htons(75);
    	addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
    	printf("客户端已启动");//输出提示信息
    	::connect(s, (sockaddr*)&addr, sizeof(addr));
    	::recv(s, sztex, sizeof(sztex), 0);
    	printf("%s
    ", sztex);
    	::closesocket(s);//关闭套接字句柄
    	::WSACleanup();//释放套接字库
    	if (getchar())
    	{
    		return 0;
    	}
    	else
    	{
    		::Sleep(100);
    	}
    
    
    
    
    
    	return 0;
    }
    
    
    

    https://github.com/MikotoMisakas/win_tcp_socket/tree/master/win_tcp_socket

  • 相关阅读:
    不指定虚拟路径的前提下通过http访问pdf、图片等文件
    Java Service Wrapper将java程序设置为服务
    C# 上传excel文档解析出里面数据
    如何同时启动多个Tomcat服务
    struts2的action的知识点和利用action向页面注入值的操作
    IOS6 字体高亮显示
    微软安全新闻聚焦-双周刊第三十五期
    工厂三兄弟之工厂方法模式(四)
    清空文件夹里面的所有文件和文件夹
    OOP设计模式[JAVA]——03职责链模式
  • 原文地址:https://www.cnblogs.com/binarysystemloophole/p/12832738.html
Copyright © 2020-2023  润新知