社区
网络编程
帖子详情
如何通过c++进行socket通信时。客户端绑定本地ip以及地址
global1860
2010-12-25 01:29:37
目前大多数都是服务器绑定的。客户端其实也可以绑定ip与端口的,端口是也随机找1024以上的端口。
我想自己来设置绑定本地的ip地址与服务器通信.找了大半天,没找着。
...全文
2031
5
打赏
收藏
如何通过c++进行socket通信时。客户端绑定本地ip以及地址
目前大多数都是服务器绑定的。客户端其实也可以绑定ip与端口的,端口是也随机找1024以上的端口。 我想自己来设置绑定本地的ip地址与服务器通信.找了大半天,没找着。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zj294006
2010-12-25
打赏
举报
回复
这不是孙鑫的例子吗?怎么成了什么网魂小兵的了,古老的void main()
zhxingway
2010-12-25
打赏
举报
回复
3楼解答好详细
zjfhgdx
2010-12-25
打赏
举报
回复
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。
服务器端编程的步骤:
1:加载套接字库,创建套接字(WSAStartup()/socket());
2:绑定套接字到一个IP地址和一个端口上(bind());
3:将套接字设置为监听模式等待连接请求(listen());
4:请求到来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept());
5:用返回的套接字和客户端进行通信(send()/recv());
6:返回,等待另一连接请求;
7:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。
服务器端代码如下:
#include <stdio.h>
#include <Winsock2.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
}
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
listen(sockSrv,5);
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
while(1)
{
SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
char sendBuf[50];
sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));
send(sockConn,sendBuf,strlen(sendBuf)+1,0);
char recvBuf[50];
recv(sockConn,recvBuf,50,0);
printf("%s\n",recvBuf);
closesocket(sockConn);
}
}客户端编程的步骤:
1:加载套接字库,创建套接字(WSAStartup()/socket());
2:向服务器发出连接请求(connect());
3:和服务器端进行通信(send()/recv());
4:关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup())。
客户端的代码如下:
#include <stdio.h>
#include <Winsock2.h>
void main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 1, 1 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
return;
}
if ( LOBYTE( wsaData.wVersion ) != 1 ||
HIBYTE( wsaData.wVersion ) != 1 ) {
WSACleanup( );
return;
}
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
send(sockClient,"hello",strlen("hello")+1,0);
char recvBuf[50];
recv(sockClient,recvBuf,50,0);
printf("%s\n",recvBuf);
closesocket(sockClient);
WSACleanup();
}
==================================================
本文可以随意转载,摘抄等非商业用途;
为了尊重作者成果,在转载和摘抄的时候请留下作者名称和出处;
关于作者:网魂小兵
熟悉程序:ASP.NET(C#), C/C++,JAVASCRIPT,SQLSERVER,MYSQL...
熟悉项目:CommunityServer,JQuery,Mangos
研发项目:秘密
renxu350
2010-12-25
打赏
举报
回复
[Quote=引用楼主 global1860 的回复:]
目前大多数都是服务器绑定的。客户端其实也可以绑定ip与端口的,端口是也随机找1024以上的端口。
我想自己来设置绑定本地的ip地址与服务器通信.找了大半天,没找着。
[/Quote]
一样使用bind()函数,,,,,
mayudong1
2010-12-25
打赏
举报
回复
1
填充sockaddr结构的时候把地址填上,端口设成0,就是你要的效果了
C++
:实现
socket
通信
(TCP/
IP
)实例
首先声明,博主之前从来没有写过
通信
方面的东西,这次之所以写这个是因为项目需要,因此本文主要介绍一个使用
C++
语言及
Socket
来实现TCP/
IP
通信
的实例,希望可以帮助入门者。 一、什么是TCP/
IP
? TCP提供基于
IP
...
关于
socket
的
绑定
IP
这个,,
socket
的
绑定
ip
啊,感觉有点绕,每次无论是看注释还是看文档,说的都是类似于
socket
监听的本地
ip
地址
的话,但是如果在服务器使用其
绑定
了127.0.0.1这个
地址
的话,外网就连不进来,我查阅了很多资料,最后...
SOCKET
通信
中的各种
ip
问题,服务端获取
客户端
ip
地址
inet_ntoa(ser_addr.sin_addr),如果
客户端
地址
是"192.168.2.2",在服务端打印出来的这个
ip
就是"192.168.2.2",可用INADDR_ANY,...在
进行
socket
网络
通信
的
时
候,我们经常需要获取
ip
地址
,下面介绍一些获取
ip
地址
的方法。
C,
C++
实现
socket
服务端和
客户端
C实现
socket
服务端和
客户端
一 服务端的实现1.1 公用
c++
文件 tcp
Socket
.h, tcp
Socket
.cpp1.2 服务端源码 server.cpp二
客户端
的实现2.1
客户端
源码 client.cpp 一 服务端的实现 1.1 公用
c++
文件 tcp
Socket
.h, tcp...
C++
实现简单
Socket
通信
参考学习:
C++
:实现
socket
通信
(TCP/
IP
)实例 1. 一对一 server.cpp // server.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 /* 服务端:建立
socket
,申明自身port和
IP
,并
绑定
到
socket
,使用listen...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章