借此地方整理以下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 ...
关于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下使用...
模拟p2p应用例子,用c语言socket和多线程写的
waisock-功能齐全的C语言socket及SSL封装类及使用例子源代码。内含调用socket封装类和监控通信的例子,其中监控代理和监控终端可以直接在自己的项目中使用。
waisock-功能齐全的C语言socket及SSL封装类及使用例子源代码(版本v01.06.20171110)。内含调用socket封装类和监控通信的例子,其中监控代理和监控终端可以直接在自己的项目中使用,免去很多工作量。
这是一个完整的源代码,经过测试完全通过,没有任何错误,可用于c语言综合实训课程的实践练习和参考代码。由从事教学经验的老师设计。
LINUX下JAVA程序与C语言程序通过SOCKET通信的简单例子.pdf
简单实现了socket通信功能,适合socket初学者用来学习和理解socket,也是本人以前学习socket的时候入门的例子,希望对大家有用
基于VC++6.0的socket 通信简单例子,可以参考修改
C语言Sock编程小例子,带详细注释。 供入门socket编程时参考。很简单,作为加强SOCKET编程基本概念的理解很合适。
利用C语言用socket请求网页,GET百度首页,接收返回数据
本程序在UDP传输情况下使用DES对固定字符串进行加密传输,(字符串可以自行修改程序进行手动输入)
TCP通信心跳包源码C语言实现,基于Linux平台写的,可以整合到自己的代码中去。
java程序与C语言程序通过SOCKET通信的简单例子
实现telnet攻击,socket套接字编程,dos下演示自由落体运动算法,删除系统临时文件,快速中断CPU 查看内存运行情况,更新注册表,关闭U盘接口 提供源代码跟编译通过的EXE文件 双击运行
linux下c语言中使用raw_socket模拟ping程序,给目标服务器发送ICMP包,并能接受和统计所发的包
Socket编程经典例子源码.zip visual c++ vc+socket tcp通信入门代码