54 lines
1.6 KiB
C
54 lines
1.6 KiB
C
#include<stdio.h>
|
||
#include <sys/socket.h>
|
||
#include <sys/types.h>/* See NOTES */
|
||
#include <netinet/in.h>
|
||
#include <arpa/inet.h>
|
||
#include <string.h>
|
||
#include <unistd.h>
|
||
|
||
#define OWNADDR "192.168.0.17" //我自己电脑的ip地址
|
||
#define OWNPORT 10000 //我自己电脑的该程序的端口号
|
||
|
||
#define SERVERADDR "192.168.0.114" //对方的服务器的IP地址
|
||
#define SERVERPORT 20000 //对方的服务器的端口号
|
||
|
||
int main()
|
||
{
|
||
//1、买手机(建立套接字)
|
||
int socketfd = socket(AF_INET, SOCK_STREAM, 0);
|
||
if(socketfd == -1)
|
||
{
|
||
printf("没钱了....,失败\n");
|
||
return -1;
|
||
}
|
||
//2、绑定自己的电话号码(绑定自己的IP地址 和端口号)
|
||
//定义一个IPV4结构体变量,初始化自己的IP地址和端口号
|
||
struct sockaddr_in ownAddr;
|
||
ownAddr.sin_family = AF_INET;/*地址族 IPV4*/
|
||
ownAddr.sin_port = htons(OWNPORT);//htons 将本地端口号转为网络端口号
|
||
ownAddr.sin_addr.s_addr = inet_addr(OWNADDR);//将本地IP地址转为网络IP地址
|
||
|
||
bind(socketfd, (struct sockaddr *)&ownAddr,sizeof(struct sockaddr_in));
|
||
|
||
//3、开始打电话(发起连接)
|
||
struct sockaddr_in serverAddr;
|
||
serverAddr.sin_family = AF_INET;/*地址族 IPV4*/
|
||
serverAddr.sin_port = htons(SERVERPORT); //htons 将本地端口号转为网络端口号
|
||
serverAddr.sin_addr.s_addr = inet_addr(SERVERADDR); //将本地IP地址转为网络IP地址
|
||
|
||
connect(socketfd,(struct sockaddr *)&serverAddr,sizeof(struct sockaddr_in));
|
||
|
||
//4、聊天
|
||
while(1)
|
||
{
|
||
printf("data:");
|
||
char buf[1024]={0};
|
||
scanf("%s",buf);
|
||
//发送数据
|
||
send(socketfd, buf, strlen(buf), 0);
|
||
}
|
||
//5、关闭
|
||
close(socketfd);
|
||
|
||
return 0;
|
||
} |