本篇文章给大家谈谈xcodec语言socket,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、怎样用C语言做socket网络编程?2、用C语言实现socket文件传输?3、C语言 socket 传输4、怎样用socket实现通信?现在我的服务端(server)是C#写的,客户端是想用ios系统上的objective-c实现。
怎样用C语言做socket网络编程?
mfc只是对socket进行了一些封装,大部分人做网络编程都是用的原始的socket,比如如下接口都可以在c下进行调用\x0d\x0a 1.socket() \x0d\x0a 2.bind() \x0d\x0a 3.connect() \x0d\x0a 4.listen() \x0d\x0a 5.accept() \x0d\x0a 6.send() 和recv() \x0d\x0a 7.sendto() 和recvfrom() \x0d\x0a 8.close() 和shutdown() \x0d\x0a 9.getpeername() \x0d\x0a 10.gethostname() \x0d\x0a这些接口是在Winsock2.h中定义的不是在mfc中定义的,你只需要包含Winsock2.h头文件和Ws2_32.lib库就可以了。
用C语言实现socket文件传输?
服务端代码:
#include stdio.h
#include stdlib.h
#include errno.h
#include string.h
#include sys/types.h
#include netinet/in.h
#include sys/socket.h
#include sys/wait.h
#define MYPORT 3490 /*定义用户连接端口*/
#define BACKLOG 10 /*多少等待连接控制*/
main()
{
int sockfd, new_fd; /* listen on sock_fd, new connection on new_fd
*/
struct sockaddr_in my_addr; /* my address information */
struct sockaddr_in their_addr; /* connector’s address information */
int sin_size;
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror(“socket”);
exit(1);
}
my_addr.sin_family = AF_INET; /* host byte order */
my_addr.sin_port = htons(MYPORT); /* short, network byte order */
my_addr.sin_addr.s_addr = INADDR_ANY; /* auto-fill with my IP */
bzero((my_addr.sin_zero),; /* zero the rest of the struct */
if (bind(sockfd, (struct sockaddr *)my_addr, sizeof(struct
sockaddr))== -1) {
perror(“bind”);
exit(1);
}
if (listen(sockfd, BACKLOG) == -1) {
perror(“listen”);
exit(1);
}
while(1) { /* main accept() loop */
sin_size = sizeof(struct sockaddr_in);
if ((new_fd = accept(sockfd, (struct sockaddr *)their_addr, \
sin_size)) == -1) {
perror(“accept”);
continue;
}
printf(“server: got connection from %s\n”, \
inet_ntoa(their_addr.sin_addr));
if (!fork()) { /* this is the child process */
if (send(new_fd, “Hello, world!\n”, 14, 0) == -1)
perror(“send”);
close(new_fd);
exit(0);
}
close(new_fd); /* parent doesn’t need this */
while(waitpid(-1,NULL,WNOHANG) 0); /* clean up child processes */
}
}
客户代码:
#include stdio.h
#include stdlib.h
#include errno.h
#include string.h
#include sys/types.h
#include netinet/in.h
#include sys/socket.h
#include sys/wait.h
#define PORT 3490 /* 客户机连接远程主机的端口 */
#define MAXDATASIZE 100 /* 每次可以接收的最大字节 */
int main(int argc, char *argv[])
{
int sockfd, numbytes;
char buf[MAXDATASIZE];
struct hostent *he;
struct sockaddr_in their_addr; /* connector’s address information */
if (argc != 2) {
fprintf(stderr,”usage: client hostname\n”);
exit(1);
}
if ((he=gethostbyname(argv[1])) == NULL) { /* get the host info */
herror(“gethostbyname”);
exit(1);
}
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror(“socket”);
exit(1);
}
their_addr.sin_family = AF_INET; /* host byte order */
their_addr.sin_port = htons(PORT); /* short, network byte order */
their_addr.sin_addr = *((struct in_addr *)he-h_addr);
bzero((their_addr.sin_zero),; /* zero the rest of the struct */
if (connect(sockfd, (struct sockaddr *)their_addr,sizeof(struct
sockaddr)) == -1) {
perror(“connect”);
exit(1);
}
if ((numbytes=recv(sockfd, buf, MAXDATASIZE, 0)) == -1) {
perror(“recv”);
exit(1);
}
buf[numbytes] = ‘\0’;
printf(“Received: %s”,buf);
close(sockfd);
return 0;
}
C语言 socket 传输
///////////////////////////////////////////
//server
#include winsock2.h
#include stdio.h
#pragma comment(lib, “ws2_32.lib”)
int main()
{
WSADATA wsaData;
int ret = WSAStartup(MAKEWORD(2,2), wsaData);
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//本地地址信息
sockaddr_in localAddr;
localAddr.sin_family = AF_INET;
localAddr.sin_port = htons(5000);//本地端口
localAddr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”);
if(!bind(s,(sockaddr *)localAddr,sizeof(sockaddr)))
printf(“bind ok\n”);
//远程主机地址
sockaddr_in remoteAddr;
intremoteAddrLen = sizeof(sockaddr);
listen(s,5);
SOCKET remoteSocket;
while(1)
{
remoteSocket = accept(s,(sockaddr *)remoteAddr,remoteAddrLen);
if(remoteSocket!= -1)
break;
}
printf(“connection from remote\n”);
char buf[100] = { 0 };
int bufLen = 100;
recv(remoteSocket, buf, bufLen, 0);
printf(“%s”, buf);
system(“pause”);
return 0;
}
//////////
//client
/////////
#include winsock2.h
#include stdio.h
#pragma comment(lib, “ws2_32.lib”)
int main()
{
WSADATA wsaData;
int ret = WSAStartup(MAKEWORD(2,2), wsaData);
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//本地地址信息
sockaddr_in localAddr;
localAddr.sin_family = AF_INET;
localAddr.sin_port = htons(9999);//本地端口
localAddr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”);
bind(s,(sockaddr *)localAddr,sizeof(sockaddr));
//远程主机地址
sockaddr_in remoteAddr;
remoteAddr.sin_family = AF_INET;
remoteAddr.sin_port = htons(5000);//远程端口
remoteAddr.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1”);// 远程IP地址
ret = connect(s,(sockaddr *)remoteAddr,sizeof(sockaddr));
if(!ret) {
printf(“connection ok\n”);
}
ret = send(s, “hello”, 6, 0);
printf(“%d bytes sended\n”, ret);
closesocket(s);
WSACleanup();
system(“pause”);
return 0;
}
怎样用socket实现通信?现在我的服务端(server)是C#写的,客户端是想用ios系统上的objective-c实现。
1,用c语言的bsd socket
2,用NSStream的socket编程
3,用CFSocket,CFSocektConnectToAddress(…)
4,最推荐使用的, AsyncSocket,对cfsocket进行了封装,相当好用,代码在github上面就有,找到以后去贴,怎么贴问度娘
关于xcodec语言socket和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。