zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    <C> 链表 双向链表 栈 队列
    <C> 结构体
    <C> getchar()函数 如何把getchar()到的字符串存起来的实际应用
    DataSet转换为泛型集合和DataRow 转成 模型类
    对DataSet,DataRow,DateTable转换成相应的模型
    Json对象与Json字符串互转(4种转换方式)
    Android开发 使用HBuilder的缓存方法
    MIT_AI公开课p1p2学习笔记
    LeetCode_02 两数相加【链表】
    leetcode_01两数之和
  • 原文地址:https://www.cnblogs.com/binarysystemloophole/p/12832738.html
Copyright © 2011-2022 走看看