客户服务器编程示例
来源:互联网 发布:网络伤感情歌2017 编辑:程序博客网 时间:2024/04/29 17:51
先建立两个工程Server和Client,添加StdAfx.h和WINSOCK2.h两个头文件,然后编写下面的两段代码:
Server.cpp:
#include "StdAfx.h"
#include "WINSOCK2.h"
#include <iostream>
#define _TCHAR char
#pragma comment(lib, "ws2_32.lib ")
using namespace std;
int main(int argc, _TCHAR* argv[])
{
WSADATA wsaData;
SOCKET ListeningSocket;
SOCKADDR_IN ServerAddr;
SOCKET NewConnection;
SOCKADDR_IN ClientAddr;
int Port = 5150;
WSAStartup(MAKEWORD(2,2), &wsaData);// 初始化Windows Socket 2.2
ListeningSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);//创建一个新的Socket来响应 客户端的连接请求;AF_INET字段是表示网络地址的类型,AF_INET表示是internet域中进行通信;SOCK_STREAM表示socket的类型,SOCK_STREAM表示是流套接字IPPROTO_TCP表明协议类型,IPPROTO_TCP或者0表示TCP/IP协议
ServerAddr.sin_family = AF_INET; // 填写服务器地址信
ServerAddr.sin_port = htons(Port); // 端口为5150
ServerAddr.sin_addr.s_addr = htonl(INADDR_ANY);//INADDR_ANY表示机器上的所用网络地址 ; 比如你的机器上有两张网卡,那么到达这两张网卡的数据,你的socket都可以得到通知;htonl将IP地址转换为网络格式
bind(ListeningSocket, (SOCKADDR *)&ServerAddr, sizeof(ServerAddr)); //绑定监听端口;当调用socket函数创建套接字后,该套接字并没有与本机地址和端口等信息相连,bind函数将完成这些工作
listen(ListeningSocket, 2); // 开始监听,指定最大同时连接数为2
int len = sizeof(ClientAddr);
NewConnection = accept(ListeningSocket, (SOCKADDR *) &ClientAddr, &len);// 接受新的连接
cout << "************************************************" << endl;
cout << "****new client has been connected******" << endl;
cout << "*************************************************" << endl;
/* 当连接建立之后,我们就可以在这里和client进行通信,传输数据了*/
closesocket(NewConnection); //关闭连接
closesocket(ListeningSocket); //并关闭监听Socket
WSACleanup(); // 释放Windows Socket DLL的相关资源
getchar();
return 0;
}
Client.cpp:
#include "StdAfx.h"
#include "WINSOCK2.h"
#include <iostream>
#define _TCHAR char
#pragma comment(lib,"ws2_32.lib")
using namespace std;
int main(int argc, _TCHAR* argv[])
{
WSADATA wsaData;
SOCKET s;
SOCKADDR_IN ServerAddr;
int Port = 5150;
WSAStartup(MAKEWORD(2,2), &wsaData); //初始化Windows Socket 2.2
s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); // 创建一个新的Socket来连接服务器
ServerAddr.sin_family = AF_INET;
ServerAddr.sin_port = htons(Port);
ServerAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); //在程序中我与本机进行通信
int result = connect(s, (SOCKADDR *) &ServerAddr, sizeof(ServerAddr)); // 向服务器发出连接请求
if(result == 0){ //result==0表示连接成功
cout << "Client has connected to server!";
}
closesocket(s);
WSACleanup();
getchar();
return 0;
}
附:StdAfx.h的代码
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#if !defined(AFX_STDAFX_H__394205FE_C7DC_42D4_B4B5_93EC44EB784C__INCLUDED_)
#define AFX_STDAFX_H__394205FE_C7DC_42D4_B4B5_93EC44EB784C__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <stdio.h>
// TODO: reference additional headers your program requires here
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_STDAFX_H__394205FE_C7DC_42D4_B4B5_93EC44EB784C__INCLUDED_)
- 客户服务器编程示例
- UNIX网络编程---TCP客户/服务器程序示例(五)
- 【UNIX网络编程(三)】TCP客户/服务器程序示例
- Linux网络编程(三) TCP客户/服务器程序示例
- TCP 客户/服务器程序示例
- TCp客户/服务器程序示例
- TCP客户/服务器程序示例
- tcp 客户、服务器程序示例
- TCP客户/服务器程序示例
- UDP客户/服务器程序示例
- Unix网络编程代码 第5章 TCP客户/服务器程序示例
- UNIX网络编程卷一 笔记 第五章 TCP客户/服务器程序示例
- 《unix网络编程》(9)TCP客户/服务器示例:TCP回射
- UNIX网络编程笔记(4)—TCP客户/服务器程序示例
- UNIX网络编程笔记 第五章 TCP客户/服务器程序示例
- UNIX网络编程卷一 第五章 TCP客户/服务器程序示例
- 《UNIX网络编程 卷1》 笔记: TCP 客户/服务器程序示例
- UNIX网络编程卷1:套接字联网-第5章:TCP客户/服务器程序示例
- 检查进程是否存在
- 2010年9月编程语言排行榜:Perl 不走寻常路
- matlab按列读取txt文件中的数据
- times new roman 宋体混合如何设置
- s3c2440的摄像接口应用
- 客户服务器编程示例
- 纯C语言集成Excel遇到的问题及解决
- 在我们开发的系统中ajax主要用到以下几点
- Vxworks 开发工具的使用操作流程
- 好的学习vxworks的博客地址
- Linux下的压缩解压缩命令详解
- IValueConverter Interface
- 开博
- linux JDK,tar.gz,rpm具体细节