借此地方整理以下socket编程的多种语言的实现,socket可以跨平台的通信,因此多语言、多平台下的实现有必要了解的。代码都是源自网上,感谢网友的分享。
socket编程在windows下的C语言实现,dev C++下编译通过
编译时设置编译选项 工具-->编译选项-->编译器,勾选在连接器命令行加入以下命令,在对话框中填-lwsock32
//server.c
#include <stdio.h>
#include <Winsock2.h>
int 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);
}
}
//客户端代码
#include <stdio.h>
#include <Winsock2.h>
int 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();
}
linux下参考
http://blog.sina.com.cn/s/blog_4ad7c25401019qqb.html
ldd server 查看依赖的动态库
gcc 可以将多个源文件编译成一个动态库或可执行文件
链接分:动态链接、静态链接两种
相关推荐
C语言socket编程指南(讲解+实例)
C语言socket发送http请求的例子源代码 一个使用C语言socket发送http请求的例子 这是一个linux下使用C的标准socket,进行http访问的例子。通过socket发送get请求,从中国天气网获得指定城市的天气。 该例子在ubuntu ...
在IT领域,网络编程是不可或缺的一...这个例子提供了从发送端到接收端的文件传输实现,对于理解C语言socket编程和网络文件传输的原理非常有帮助。通过实践和调试这样的代码,可以深入理解和掌握网络编程的核心技术。
1. 包括client和server。 2. 功能是clent告诉server文件名,向server要一个文件。 3. 本人在android的ndk环境编译在linux上跑过没有问题。 4. 在其他环境上跑应该也是没有问题的。
这是一个linux下使用C的标准socket,进行http访问的例子。通过socket发送get请求,从中国天气网获得指定城市的天气。 该例子在ubuntu 14.04和AM3358的嵌入式linux3.14下实际测试可用。 如果需要在嵌入式linux下使用...
以上是对"用C语言socket和多线程写的模拟p2p应用例子"的基本解析,具体的代码实现细节和优化策略将根据实际应用需求而有所不同。这个示例提供了一个学习P2P网络和C语言网络编程的良好起点,读者可以通过阅读和分析...
在这个例子中,我们首先初始化Winsock,然后创建一个TCP类型的socket,并将其绑定到本地的任意IP地址和端口号12345。`listen()`函数使服务器进入监听状态,等待客户端连接。当有客户端连接时,`accept()`函数返回一...
本文将深入讲解如何在C语言环境中,利用socket API进行UDP(User Datagram Protocol)网络编程。这里我们以"DevC++"作为开发环境,它是一款轻量级的C/C++集成开发环境,非常适合初学者学习。 首先,了解UDP的基本...
这涉及到网络编程,C语言可以用于编写底层的网络应用,比如处理TCP/IP协议栈,进行socket通信。这个程序可能是通过调用操作系统提供的API来实现IP地址的设置,展示了C语言在系统编程中的应用。 最后,"说明.txt"很...
总的来说,这份"C语言SOCKEt编程指南"是为初学者准备的,旨在帮助读者理解和实践Socket编程,涵盖了从基础概念到高级技术的广泛内容。通过阅读和实践文档中的例子,读者将能够编写出能连接到Internet的C语言程序,...
waisock-功能齐全的C语言socket及SSL封装类及使用例子源代码(版本v01.06.20171110)。内含调用socket封装类和监控通信的例子,其中监控代理和监控终端可以直接在自己的项目中使用,免去很多工作量。
总结起来,waisock是一个强大且实用的C语言socket及SSL封装库,它的出现使得C语言的网络编程变得更加便捷和安全。通过深入学习和利用waisock,开发者可以在TCP通信和安全加密方面提升专业技能,为项目开发带来显著的...
LINUX下JAVA程序与C语言程序通过SOCKET通信的简单例子.pdf
在这个简单的C语言Socket通信实例中,我们将探讨如何创建一个服务器端来接收和响应客户端的请求。 首先,服务器端的核心工作流程如下: 1. **创建Socket**: 使用`socket()`函数创建一个Socket描述符。在这个例子...
在C语言中,我们可以使用标准库`<sys/socket.h>`来创建和操作Socket。 创建一个HTTP服务器的第一步是绑定一个Socket到特定的IP地址和端口号。在这个例子中,服务器监听9000端口。端口号的选择很重要,因为它必须是...
Socket编程在IT领域中是网络通信的基础,尤其在C语言中,它是构建客户端-服务器应用程序的关键。本指南主要面向那些想要学习或深入了解Socket编程的初学者。以下是对标题和描述中涉及的一些关键知识点的详细解释: ...
本示例将探讨一个用C语言实现的TCP(传输控制协议)网络连接的例子。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,是互联网协议栈中的核心组件。 TCP的特点包括: 1. **面向连接**:在数据传输前,...
在这个“c语言实用tcp例子”中,我们能看到如何用C语言实现简单的TCP通信。 首先,让我们来了解TCP通信的基本概念。TCP建立连接前需要三次握手,确保双方都能正常通信。一旦连接建立,数据便可以在两个端点之间双向...