windows下的socket的面向连接简单编程
来源:互联网 发布:网络主播传媒公司 编辑:程序博客网 时间:2024/05/16 17:20
环境:windows10 + VC++6.0
1. 加载 ws2_32.lib
project ->settings -> link -> object/library modules下输入ws2_32.lib
或者 代码中加入 #pragma comment(lib, "WS2_32")
2. 流程
服务器
初始化(套接字,本机信息,客户端信息)->建立套接字->绑定端口->监听端口->接收客户端->发送消息->关闭
客户端
初始化->建立套接字->连接服务器->接受消息->关闭
3.代码
注意要修改IP地址
服务器
#include <stdio.h>
#include <string.h>
#include <windows.h>
//服务器端
#define SERVPORT 3333 //定义端口
#define BACKLOG 5 //定义连接数
void main ()
{
//初始化
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
//开始
int sockfd,client_fd;
sockaddr_in MyAddr ,ClientAddr;
if( (sockfd=socket(AF_INET,SOCK_STREAM,0)) ==-1)
{
printf("创建套接字时候出错!\n");
exit(1);
}
printf("创建套接字成功!\n");
memset(&MyAddr,0,sizeof(struct sockaddr_in));
MyAddr.sin_family=AF_INET;
MyAddr.sin_port=htons(SERVPORT);//端口
MyAddr.sin_addr.s_addr=INADDR_ANY;//IP
if(bind(sockfd,(struct sockaddr*)&MyAddr,sizeof(MyAddr))==-1)
{
printf("绑定时候出错!\n");
exit(1);
}
printf("绑定成功!\n");
if(listen(sockfd,BACKLOG)==-1)
{
printf("监听时候出错!\n");
exit(1);
}
printf("进行监听等待客户端连接:\n");
int sizeClient=sizeof(ClientAddr);
if((client_fd=accept(sockfd,(struct sockaddr*)&ClientAddr,&sizeClient))==-1)
{
printf("接受客户端时候出错!\n");
exit(1);
}
printf("输入向客户端输出的文字:");
char put[100];
scanf("%s",put);
int len=sizeof(put);
if(send(client_fd,put,len,0)==-1)
{
printf("输出的时候出错!\n");
exit(1);
}
closesocket(client_fd);
closesocket(sockfd);
}
客户端
#include <stdio.h>
#include <windows.h>
#include <string.h>
#define SERVPORT 3333
void main()
{
//初始化
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
struct sockaddr_in serv_addr;
int sockfd;
char rec[100];
memset(&serv_addr,0,sizeof(struct sockaddr_in));
serv_addr.sin_family =AF_INET;
serv_addr.sin_port=htons(SERVPORT);
serv_addr.sin_addr.s_addr=inet_addr("192.168.1.1");//此时输入服务器的IP地址 192.168.1.1仅作范例
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
printf("创建套接字时候出错!\n");
exit(1);
}
if(connect(sockfd,(struct sockaddr*)&serv_addr,sizeof(struct sockaddr))==-1)
{
printf("连接服务器时候出错!\n");
exit(1);
}
if(recv(sockfd,rec,100,0)==-1)
{
printf("接收数据时候出错!\n");
exit(1);
}
printf("recv:%s\n",rec);
closesocket(sockfd);
}
- windows下的socket的面向连接简单编程
- Windows网络编程之面向连接的Socket编程
- Windows网络编程之面向非连接的Socket编程
- Windows下socket简单的编程实例
- 面向连接的Socket编程
- TCP(面向连接)的socket编程
- 面向连接的Socket编程步骤
- TCP(面向连接)的socket编程
- UDP(面向无连接)的socket编程
- 基于TCP(面向连接)的socket编程
- 基于面向连接的socket编程
- Windows 下的socket编程
- Windows SOCKET编程 2-----(面向连接的通信TCP)---服务端
- Windows SOCKET编程 2-----(面向连接的通信TCP)---客户端
- 基于面向连接和无连接的socket编程
- 简单的Windows Socket编程实例
- 面向连接的Socket Server的简单实现
- 面向连接的Socket Server的简单实现
- XML DOM解析 基础概念
- 2016-1-18 表达式求值小结
- 寒假集训2 I 二分 hdu 5178
- 【机器学习算法】之Apriori
- alarmmanger set 不生效的问题
- windows下的socket的面向连接简单编程
- vim 中Ctags的安装和使用
- iOS pb编译器使用
- 【C#】基础知识—运算符
- XML DOM解析(Java)的一个简单实例
- 【C#】基础知识—流程控制语句
- java中的String,StringBuilder,StringBuffer
- MATLAB:1 matlab 与 c++ 数据存储的差异
- linux添加开机启动脚本