client
来源:互联网 发布:java spring框架详解 编辑:程序博客网 时间:2024/06/10 09:40
客户端
#include<Winsock2.h>
#include<stdio.h>
#include<stdlib.h>
#pragma comment (lib,"ws2_32.lib")
//服务器使用的端口号为5050
#define DEFAULT_PORT 5050
#define DATA_BUFFER 1024
void main()
{
WSADATA wsaData;
SOCKET sClient;
int iPort = DEFAULT_PORT;
//接收数据的缓冲
int iSend;
int iRecv;
//要发送给服务器的信息
char send_buf[1024];
//接收数据的缓冲
char recv_buf[DATA_BUFFER];
//服务器端地址
struct sockaddr_in ser;
printf("--------------------------\n");
printf("基于TCP的通信程序的客户端\n");
//提示在命令持中输入法服务器IP地址
printf("输入服务器IP:");
char ipz[32];
gets(ipz);
//char * ipz=&ip;
//接收数据的缓冲区初始化
memset(recv_buf,0,sizeof(recv_buf));
if(WSAStartup(MAKEWORD(2,2),&wsaData) != 0)
{
printf("Failed to load Winsock.\n");
return;
}
//填写要连接的服务器地址信息
ser.sin_family = AF_INET;
ser.sin_port = htons(iPort);
//inet_addr()函数将命令持的点扫IP地址转化为用二进制表示的网络顺序的IP地址
//ser.sin_addr.s_addr = inet_addr(argv[1]);
ser.sin_addr.s_addr = inet_addr(ipz);
//建立客户端流式套接口
sClient = socket(AF_INET,SOCK_STREAM,0);
if(sClient == INVALID_SOCKET)
{
printf("socket() Failed:%d\n",WSAGetLastError());
return;
}
//请求与服务器端建立TCP连接
if(connect(sClient,(struct sockaddr*)&ser,sizeof(ser)) == INVALID_SOCKET)
{
printf("connect() Failed.:%d\n",WSAGetLastError());
return;
}
else
{
printf("建立TCP连接成功!\n");
printf("--------------------------\n");
//进入一个无限循环,与服务器交互
while(1){
//向服务器发送数据
printf("发送消息:");
gets(send_buf);
iSend = send(sClient,send_buf,sizeof(send_buf),0);
if(iSend == SOCKET_ERROR)
{
printf("send() Failed:%d\n,WSAGetLastError()");
return;
}
else if(iSend == 0)
return;
else
printf("发送成功.\n");
//从服务器端接收数据
iRecv = recv(sClient,recv_buf,sizeof(recv_buf),0);
if(iRecv == SOCKET_ERROR)
{
printf("recv() Failed:%d\n",WSAGetLastError());
return;
}
else if(iRecv == 0)
return;
else
{
//显示从服务器收到的信息
printf("服务器说:%s\n",recv_buf);
printf("--------------------------\n");
}
}
}
closesocket(sClient);
WSACleanup();
}
#include<stdio.h>
#include<stdlib.h>
#pragma comment (lib,"ws2_32.lib")
//服务器使用的端口号为5050
#define DEFAULT_PORT 5050
#define DATA_BUFFER 1024
void main()
{
WSADATA wsaData;
SOCKET sClient;
int iPort = DEFAULT_PORT;
//接收数据的缓冲
int iSend;
int iRecv;
//要发送给服务器的信息
char send_buf[1024];
//接收数据的缓冲
char recv_buf[DATA_BUFFER];
//服务器端地址
struct sockaddr_in ser;
printf("--------------------------\n");
printf("基于TCP的通信程序的客户端\n");
//提示在命令持中输入法服务器IP地址
printf("输入服务器IP:");
char ipz[32];
gets(ipz);
//char * ipz=&ip;
//接收数据的缓冲区初始化
memset(recv_buf,0,sizeof(recv_buf));
if(WSAStartup(MAKEWORD(2,2),&wsaData) != 0)
{
printf("Failed to load Winsock.\n");
return;
}
//填写要连接的服务器地址信息
ser.sin_family = AF_INET;
ser.sin_port = htons(iPort);
//inet_addr()函数将命令持的点扫IP地址转化为用二进制表示的网络顺序的IP地址
//ser.sin_addr.s_addr = inet_addr(argv[1]);
ser.sin_addr.s_addr = inet_addr(ipz);
//建立客户端流式套接口
sClient = socket(AF_INET,SOCK_STREAM,0);
if(sClient == INVALID_SOCKET)
{
printf("socket() Failed:%d\n",WSAGetLastError());
return;
}
//请求与服务器端建立TCP连接
if(connect(sClient,(struct sockaddr*)&ser,sizeof(ser)) == INVALID_SOCKET)
{
printf("connect() Failed.:%d\n",WSAGetLastError());
return;
}
else
{
printf("建立TCP连接成功!\n");
printf("--------------------------\n");
//进入一个无限循环,与服务器交互
while(1){
//向服务器发送数据
printf("发送消息:");
gets(send_buf);
iSend = send(sClient,send_buf,sizeof(send_buf),0);
if(iSend == SOCKET_ERROR)
{
printf("send() Failed:%d\n,WSAGetLastError()");
return;
}
else if(iSend == 0)
return;
else
printf("发送成功.\n");
//从服务器端接收数据
iRecv = recv(sClient,recv_buf,sizeof(recv_buf),0);
if(iRecv == SOCKET_ERROR)
{
printf("recv() Failed:%d\n",WSAGetLastError());
return;
}
else if(iRecv == 0)
return;
else
{
//显示从服务器收到的信息
printf("服务器说:%s\n",recv_buf);
printf("--------------------------\n");
}
}
}
closesocket(sClient);
WSACleanup();
}
0 0
- client
- client
- Client
- Client
- Client
- Client
- client
- Client
- client
- Client
- client
- client
- kinetic client之client
- ftp client
- Smart Client
- Smart Client
- FTP Client
- ftp client
- Jenkins在windows上安装
- android realm数据库基本使用
- Efficient Gradient-domain Compositing
- tcp sever
- Mysql基础知识----常用命令
- client
- java多线程学习
- 啦啦啦啦啦啦啦啦啦啦啦啦这是一篇分界线
- 乐观锁和悲观锁的区别
- C++ dll 类型与 C#类型对应关系
- 如何在Mac OS X上关闭Emacs的自动保存功能?
- 98-10(fibonacci)
- Spring SpringMVC Mybatis项目总结
- ArrayList和LinkedList